【问题标题】:How to get all values in an array whose added index size is greater than value?如何获取数组中添加的索引大小大于值的所有值?
【发布时间】:2021-05-16 01:17:38
【问题描述】:

我有一个 5x5 的 ndarray,并且想要汇总所有添加的索引大小大于给定值的值。

例如,我有以下数组

x = np.random.random([5, 5])

并且想要对行和列索引组合大于 6 的所有值求和。 如果我手动执行此操作,我会计算

idx_gr_8 = x[4, 3] + x[4, 4] + x[3, 4]

因为 4 + 3、4 + 4 和 3 + 4 是唯一大于 6 的索引。 然而,这对于较大的阵列来说很麻烦。 有没有 numpy 命令或更有效的方法来做到这一点?

【问题讨论】:

    标签: python numpy indexing filter


    【解决方案1】:

    您可以使用meshgrid 获取行和列索引:

    a = np.random.rand(5, 5)
    min_ind = 6
    
    row_i, col_i = np.meshgrid(range(a.shape[0]), range(a.shape[1]), indexing='ij')
    valid_mask = (row_i + col_i) > min_ind
    
    res = a[valid_mask].sum()
    

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2014-12-28
      • 2013-01-11
      • 2021-07-19
      相关资源
      最近更新 更多