假设我有一个numpy数组如下:
array([ 1. , 2. , 0. , 3.4, 0. , 1.1])
现在我想获得所有零素的索引。原因是我想得到那些索引然后对于不同的数组我想将相同索引上的元素转换为零。
要获得非零指数我知道我们可以使用非零或argwhere。
np.nonzero(a)
(array([0, 1, 3, 5]),)
然后让我说我有数组b我可以使用上面的索引列表并将具有相同索引的数组b的所有元素转换为零,如下所示:
b[np.nonzero(a)]=0
这很好,但它适用于非零指数。如何获得零指数。
答案 0 :(得分:4)
如果您只想将结果用于索引目的,那么建立布尔数组比索引数组更有效:
a == 0
您可以使用与使用索引数组相同的方式进行索引:
b[a == 0] = 0
如果你真的想要一个索引数组,你可以在布尔数组上调用np.nonzero
:
np.nonzero(a == 0)
np.where
也有效。