【问题标题】:numpy: opposite of nonzero (get indices of zero elements)numpy:与非零相反(获取零元素的索引)
【发布时间】:2021-01-26 12:22:58
【问题描述】:

numpy.nonzero 对于获取非零元素的索引很有用。它返回一个数组元组,每个数组都包含特定轴的非零元素的索引。

除了 zero 元素之外,是否有等价的元素?

对于给定的numpy数组的意思

x = [[1, 2, 0],
     [8, 0, 2],
     [0, 0, 1]]

我可以得到如下索引

ax0_zero_idxs, ax1_zero_idxs = numpy.zero(x)

在哪里

ax0_zero_idxs = [0, 1, 2, 2]
ax1_zero_idxs = [2, 1, 0, 1]

【问题讨论】:

  • 只用x==0np.nonzero?

标签: python numpy


【解决方案1】:

请注意,x == 0 会生成一个 bool 数组,其中包含每个元素 回答问题:x的对应元素是否等于0

所以你可以将 np.nonzero 应用到这个数组:

result np.nonzero(x == 0)

自己试试吧。

您可以获得满足任何其他条件的元素索引的相同方式。

【讨论】:

  • 谢谢,这行得通!为了记录,我不得不做np.nonzero(~(x != 0)),因为x是稀疏矩阵,显然用稀疏矩阵做!= 0== 0要快得多(scipy提出的警告)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
相关资源
最近更新 更多