例如
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内置方法来实现此目的?非常感谢!
答案 0 :(得分:2)
用b
将2D
扩展到None/np.newaxis
,以使每个元素都在一行中。然后与a
比较,broadcast
将对每一行的所有列进行比较,然后对行求和-
In [12]: (a > b[:,None]).sum(axis=1)
Out[12]: array([1, 1, 3])