数字广播问题。我有两个类似于这些的数组:
>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中执行它们),因此感谢您对此类入门问题的帮助。
答案 0 :(得分:0)
您只需要调整second_array
的形状,使其具有适当的尺寸:
my_array >= second_array.reshape(2,1) # or (-1,1) if height is unknown
或等效地:
my_array >= second_array[:,np.newaxis]