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]
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]