如何搜索大于每行给定值的值的数量
How to search for number of values greater than given values for each row
例如,
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 内置方法来实现这一点?非常感谢!
用 None/np.newaxis
将 b
扩展到 2D
,这样每个元素都在一行中。然后与 a
进行比较,这将 broadcast
对每一行的所有列进行比较,然后对行求和 -
In [12]: (a > b[:,None]).sum(axis=1)
Out[12]: array([1, 1, 3])
例如,
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 内置方法来实现这一点?非常感谢!
用 None/np.newaxis
将 b
扩展到 2D
,这样每个元素都在一行中。然后与 a
进行比较,这将 broadcast
对每一行的所有列进行比较,然后对行求和 -
In [12]: (a > b[:,None]).sum(axis=1)
Out[12]: array([1, 1, 3])