我到处搜索了一个答案,对不起,如果这是一个非常基本的问题。我使用布尔Numpy数组过滤Numpy数组,这是通过比较3个不同数组中相同索引的值创建的。对于所有指数i,我的比较都由2个独立的布尔语句组成,例如x [i] == y [i] & x [i]!= z [i]。下面是令人不安的结果:Python 2.x在非常特殊的情况下,True和False返回True
x[8]=25
y[8]=27
z[8]=13
x[8]==y[8]
False
x[8]!=z[8]
True
x[8]==y[8] & x[8]!=z[8]
True
正如你所看到的,上面假&真,则返回真。我错过了什么?正如我无奈的另一个例子,这里是从正在返回正确的结果相同的阵列另一个例子:
x[3]=24
y[3]=18
z[3]=27
x[3]==y[3]
False
x[3]!=z[3]
True
x[3]==y[3] & x[3]!=z[3]
False
正如你所看到的,这个例子能正常工作。任何帮助,将不胜感激。
谢谢!
“NumPy使用'&'在布尔数组上进行逻辑与操作”实际上是有意义的,因为布尔逻辑和按位操作本质上是相同的(特别是如果将True视为1并将False视为0 ) – DeepSpace
谢谢!这是一个很好的答案,并立即修复了一切。是的,我只是使用特定的索引作为例子。再次感谢! – golfrguy04