Numpy 逻辑和两个带过滤器的数组之间
Numpy logical and between two array with filter
x = [1,1,1,1]
y = [1,1,1,1]
np.logical_and(x == 1, y == 1)
输出:假
我期待 [True, True, True, True]
的输出。如何实现?
在您的示例中,x
和 y
是 列表 而不是数组。当您使用 ==
将列表与整数进行比较时,您将始终得到 False
:
>>> [1,1,1,1] == 1
False
>>> [1,1,1,1] == 1
False
>>> np.logical_and(False, False)
False
您必须将它们转换为数组,因为数组实现 ==
以按元素工作:
>>> x = np.array([1, 1, 1, 1])
>>> x == 1
array([ True, True, True, True])
>>> x = np.array([1, 1, 1, 1])
>>> y = np.array([1, 1, 1, 1])
>>> np.logical_and(x == 1, y == 1)
array([ True, True, True, True])
x = [1,1,1,1]
y = [1,1,1,1]
np.logical_and(x == 1, y == 1)
输出:假
我期待 [True, True, True, True]
的输出。如何实现?
在您的示例中,x
和 y
是 列表 而不是数组。当您使用 ==
将列表与整数进行比较时,您将始终得到 False
:
>>> [1,1,1,1] == 1
False
>>> [1,1,1,1] == 1
False
>>> np.logical_and(False, False)
False
您必须将它们转换为数组,因为数组实现 ==
以按元素工作:
>>> x = np.array([1, 1, 1, 1])
>>> x == 1
array([ True, True, True, True])
>>> x = np.array([1, 1, 1, 1])
>>> y = np.array([1, 1, 1, 1])
>>> np.logical_and(x == 1, y == 1)
array([ True, True, True, True])