【问题标题】:How to get indices of values of numpy array which are zero如何获取零的numpy数组值的索引
【发布时间】:2016-06-21 21:45:40
【问题描述】:

假设我有一个如下的 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

这很好,但它适用于非零索引。如何获得零索引。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    如果您只想将结果用于索引目的,则创建布尔数组比索引数组更有效:

    a == 0
    

    您可以使用与使用索引数组相同的方式进行索引:

    b[a == 0] = 0
    

    如果你真的想要一个索引数组,你可以在布尔数组上调用np.nonzero

    np.nonzero(a == 0)
    

    np.where 也可以。

    【讨论】:

      猜你喜欢
      • 2018-10-22
      • 1970-01-01
      • 2021-03-10
      • 2019-05-04
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多