如何在没有numpy循环的情况下将数组的每个元素与另一个整个数组进行比较
How to compare each element of an array with another entire array without loops in numpy
令数组 A 和 B 为:
import numpy as np
A = np.array([1, 5, 2, 6])
B = np.array([4, 2, 1, 1])
我如何比较数组 A 和数组 B 的每个元素,以便结果如下所示
results = np.array([
A[0] > B,
A[1] > B,
A[2] > B,
A[3] > B
])
# resulting in a 2d array like so:
>>> results
[[False False False False] [True True True True] [False False True True] [True True True True]]
最简单的方法是将A
转化为列向量与B
进行比较,会触发两者的自动广播:
>>> A[:, None]
array([[1],
[5],
[2],
[6]])
>>> A[:, None] > B
array([[False, False, False, False],
[ True, True, True, True],
[False, False, True, True],
[ True, True, True, True]])
令数组 A 和 B 为:
import numpy as np
A = np.array([1, 5, 2, 6])
B = np.array([4, 2, 1, 1])
我如何比较数组 A 和数组 B 的每个元素,以便结果如下所示
results = np.array([
A[0] > B,
A[1] > B,
A[2] > B,
A[3] > B
])
# resulting in a 2d array like so:
>>> results
[[False False False False] [True True True True] [False False True True] [True True True True]]
最简单的方法是将A
转化为列向量与B
进行比较,会触发两者的自动广播:
>>> A[:, None]
array([[1],
[5],
[2],
[6]])
>>> A[:, None] > B
array([[False, False, False, False],
[ True, True, True, True],
[False, False, True, True],
[ True, True, True, True]])