我到處搜索了一個答案,對不起,如果這是一個非常基本的問題。我使用布爾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