脾气暴躁的广播不平等运营商

时间:2019-06-08 02:00:14

标签: numpy numpy-broadcasting

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

>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中执行它们),因此感谢您对此类入门问题的帮助。

1 个答案:

答案 0 :(得分:0)

您只需要调整second_array的形状,使其具有适当的尺寸:

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

或等效地:

my_array >= second_array[:,np.newaxis]