将 numpy 数组与另一个数组的每个元素进行比较

han*_*ick 1 python comparison numpy

A = np.array([5,1,5,8])
B = np.array([2,5])
Run Code Online (Sandbox Code Playgroud)

我想将 A 数组与 B 的每个元素进行比较。换句话说,我正在寻找一个执行以下计算的函数:

A>2
A>5
(array([ True, False,  True,  True]), array([False, False, False,  True]))
Run Code Online (Sandbox Code Playgroud)

and*_*ece 6

不是特别花哨,但列表理解会起作用:

[A > b for b in B]

[array([ True, False,  True,  True], dtype=bool),
 array([False, False, False,  True], dtype=bool)]
Run Code Online (Sandbox Code Playgroud)

您还可以使用np.greater(),这需要 Brenlla 在注释中使用的维度添加技巧:

np.greater(A, B[:,np.newaxis])

array([[ True, False,  True,  True],
       [False, False, False,  True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)