在 NumPy 数组中查找等于零的元素的索引

新手上路,请多包涵

NumPy 具有高效的函数/方法 nonzero() 来识别 ndarray 对象中非零元素的索引。获取值为零的元素的索引的最有效方法是 _什么_?

原文由 gotgenes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

numpy.where() 是我的最爱。

 >>> x = numpy.array([1,0,2,0,3,0,4,5,6,7,8])
>>> numpy.where(x == 0)[0]
array([1, 3, 5])

方法 where 返回一个 ndarray 元组,每个对应于输入的不同维度。由于输入是一维的,所以 [0] 将元组的唯一元素拆箱。

原文由 mtrw 发布,翻译遵循 CC BY-SA 4.0 许可协议

np.argwhere

 import numpy as np
arr = np.array([[1,2,3], [0, 1, 0], [7, 0, 2]])
np.argwhere(arr == 0)

它将所有找到的索引作为行返回:

 array([[1, 0],    # Indices of the first zero
       [1, 2],    # Indices of the second zero
       [2, 1]],   # Indices of the third zero
      dtype=int64)

原文由 MSeifert 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题