如何为每行搜索大于给定值的值数

时间:2019-07-08 06:54:25

标签: numpy numpy-ndarray

例如

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内置方法来实现此目的?非常感谢!

1 个答案:

答案 0 :(得分:2)

b2D扩展到None/np.newaxis,以使每个元素都在一行中。然后与a比较,broadcast将对每一行的所有列进行比较,然后对行求和-

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