将两个布尔数组相交为True

时间:2017-06-15 23:34:42

标签: python python-3.x numpy

拥有numpy数组

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

如何才能使两者的交集成为一致,以便只有True值匹配?我可以这样做:

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

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

array([False, False, False,  True,  False], dtype=bool)

1 个答案:

答案 0 :(得分:6)

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)

更多信息Numpy Logical operations