Numpy根据逻辑数组设置数据

6gpjuf90  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(85)

我有一个逻辑矩阵:
第一个月
和数据矩阵,如:

data = np.array([[1,2,3],
                 [4,5,6],
                 [7,8,9]])

字符串
我想这样做(这是在MATLAB中的方法):

data[ind,:] = 0


以便将所有具有逻辑值为1的行设置为特定值。

np.array([[0,0,0],
          [4,5,6],
          [0,0,0]])


如何在Python中实现?

hs1ihplo

hs1ihplo1#

你可以在numpy中做同样的事情,但你需要一个布尔数组(这称为布尔索引):

data[ind.astype(bool), :] = 0

# or
data[ind==1, :] = 0

字符串

  • 注意,你不需要参考第二个轴,data[ind.astype(bool)] = 0/data[ind==1] = 0就足够了。

更新data

array([[0, 0, 0],
       [4, 5, 6],
       [0, 0, 0]])


中间体:

ind.astype(bool)
# array([ True, False,  True])

c9qzyr3d

c9qzyr3d2#

data[ind==1, :] = 0将完成此工作
ind==1创建一个布尔数组,你可以把它作为索引:[ True False True]

相关问题