Python 是否可以使用布尔表达式为NumPy数组编制索引?

Python 是否可以使用布尔表达式为NumPy数组编制索引?,python,numpy,indexing,Python,Numpy,Indexing,假设我有以下数组: a = np.array([0,1,0], [1,0,0], [0,0,1]) 是否可以这样做: a[==0] = -1 要将所有零设置为-1?我知道你可以通过以下方式达到同样的效果: b = a == 0 a[b] = -1 但我只是想知道是否有一种方法可以跳过布尔数组的创建 您的语法几乎正确。这似乎有效: a[a == 0] = -1 你的语法几乎正确。这似乎有效: a[a == 0] = -1 使用np.wh

假设我有以下数组:

a = np.array([0,1,0],
             [1,0,0],
             [0,0,1])
是否可以这样做:

a[==0] = -1
要将所有零设置为-1?我知道你可以通过以下方式达到同样的效果:

b = a == 0
a[b] = -1

但我只是想知道是否有一种方法可以跳过布尔数组的创建

您的语法几乎正确。这似乎有效:

a[a == 0] = -1

你的语法几乎正确。这似乎有效:

a[a == 0] = -1

使用
np.where

np.where(a==0, -1, a)

使用
np.where

np.where(a==0, -1, a)

不使用布尔索引,根据定义,它需要布尔数组。但也可以选择:
2*a-1
用于这样一个1和0的数组。不使用布尔索引,根据定义,布尔索引需要该布尔数组。但也可以选择:
2*a-1
用于这样一个1和0的数组。