将两个布尔数组相交为True

Ped*_*roA 5 python numpy python-3.x

拥有numpy数组

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

如何才能使两者相交以便只True匹配值?我可以这样做:

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

但最后一项是True(可以理解,因为两者都是False),而我希望结果数组True只在第4个元素中,如:

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

zwe*_*wer 12

Numpy提供logical_and()了这个目的:

a = np.array([ True, False, False,  True, False], dtype=bool)
b = np.array([False,  True,  True,  True,  False], dtype=bool)

c = np.logical_and(a, b)
# array([False, False, False, True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

更多关于Numpy逻辑运营.

  • 在bool数组中,您还可以使用`&`作为`logical_and`的快捷方式,```作为`logical_or`的快捷方式,```作为`logical_xor`的快捷方式. (3认同)