首页 > 解决方案 > 将零数组的索引查找到数组中

问题描述

我有一个 numpy 数组

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

当数组仅包含零值时,我想获取所有索引:

index 2 -> [0,0,0,0]
index 4 -> [0,0,0,0]

存在与类似问题的讨论:Find indices of elements equal to zero in a NumPy array

但是在这个解决方案中,我们得到的值等于零,而不是我想要的零数组。

感谢您的帮助。

标签: arrayspython-3.x

解决方案


您可以使用np.argwherewithnp.all来获取所有元素 == 0 的行的索引:

In [11] np.argwhere((my_array == 0).all(axis=1))
Out[11]: 
array([[2],
       [4]], dtype=int64)

或者np.nonzero而不是np.argwhere给出更好的输出:

In [12] np.nonzero((my_array == 0).all(axis=1))
Out[12]: (array([2, 4], dtype=int64),)

推荐阅读