【问题标题】:How to search for number of values greater than given values for each row如何为每行搜索大于给定值的值数
【发布时间】:2019-11-17 15:53:00
【问题描述】:

例如,

a = np.array([[1,2,3]
              [1,0,4]
              [2,1,1]])

然后对于每一行,我会找到大于另一个数组中对应值的值的数量,比如 b = np.array([2,1,0]),预期结果是一个数组 [1, 1,3](第一行大于2的一个数,第二行大于1的一个数,第三行大于0的三个数)。

有没有办法使用 numpy 内置方法来实现这一点?非常感谢!

【问题讨论】:

    标签: numpy numpy-ndarray


    【解决方案1】:

    使用None/np.newaxisb 扩展到2D,这样每个元素都在一行中。然后与a 进行比较,这将broadcast 对每一行的所有列进行这些比较,然后对行求和-

    In [12]: (a > b[:,None]).sum(axis=1)
    Out[12]: array([1, 1, 3])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多