2015-10-28 32 views
5

之間的區別我試圖使用兩個或多個numpy數組的logical_and。我知道numpy具有功能logical_and(),但我發現簡單的運算符&返回相同的結果,並且可能更易於使用。numpy.logical_and與&

例如,考慮三個numpy數組a,b和c。是 np.logical_and(a, np.logical_and(b,c)) 相當於 a & b & c

如果它們(或多或少)相當,那麼使用logical_and()有什麼好處?

+5

從http://docs.scipy.org/doc/numpy/reference/generated/numpy.bitwise_and.html按位「僅計算輸入數組中整數的基本二進制表示的按位和」僅適用於整數和布爾值。它與np.logical_and不同,除了使用布爾值時 –

回答

1

@ user1121588回答這個最在發表評論,但全面解答......

「按位與」(&)的行爲大致相同logical_and布爾數組,但它並沒有傳達意圖以及使用logical_and,並提出了在非平凡情況下獲取誤導性答案的可能性(可能是壓縮或稀疏數組)。

要在多個陣列使用logical_and,做到:

np.logical_and.reduce([a, b, c]) 

輻角爲儘可能多的陣列的列表,你想logical_and在一起。他們應該都是相同的形狀。