Numpy 广播不等式运算符

Numpy broadcasting inequality operator

Numpy 广播问题。我有两个类似于这些的数组:

>my_array = np.array([[3,1,2,0] , [4,5,2,1]])
>my_array
array([[3, 1, 2, 0],
       [4, 5, 2, 1]])



>second_array = np.array([2,5])

>second_array
array([2, 5])

我想做的是转置 second_array 并按列测试,看看 my_array 是否 >= second_array 。所以结果会是这样的:


>final_array = np.array([ [ (3 >= 2), (1>= 2), (2>=2), (0>=2)] , [(4 >=5),(5>=5),(2>=5),(1>=5)]])
>final_array

array([[ True, False,  True, False],
       [False,  True, False, False]], dtype=bool)

我对 Numpy 中的矩阵运算还很陌生(很长时间以来一直在 R 中进行矩阵运算),因此感谢您帮助解决这样一个介绍性问题。

您只需重塑 second_array 使其具有合适的尺寸:

my_array >= second_array.reshape(2,1) # or (-1,1) if height is unknown

或等价地:

my_array >= second_array[:,np.newaxis]