在 Numpy 中,logic_or 只能比較兩個陣列。這就引出了一個問題:如何找到兩個以上數組的並集?同樣的問題也適用於邏輯與和取得多個陣列的交集。
Numpy 邏輯函數的限制
Numpy 明確將邏輯_或限制為兩個參數:x1 和 x2。
連結邏輯運算
可以連結邏輯_or 的多次呼叫:
x = np.array([True, True, False, False]) y = np.array([True, False, True, False]) z = np.array([False, False, False, False]) result = np.logical_or(np.logical_or(x, y), z)
結果:[ True, True, True, False]
使用一般化連結Numpy的Reduce
為了概括這個鏈接, NumPy 提供了reduce 函數:
result = np.logical_or.reduce((x, y, z))
結果:[ True, True, True, False]
此方法也適用於多維數組:
xyz = np.array((x, y, z)) result = np.logical_or.reduce(xyz)
結果:[真,真,真,假]
Python 的Reduce
Python 的functools.reduce 也可以使用:
import functools result = functools.reduce(np.logical_or, (x, y, z))
Numpy 的Any函數
Numpy 的任意函數也可以使用,但需要明確軸參數:result = np.any((x, y, z), axis=0)
邏輯與(邏輯與)和其他操作
類似的方法適用於其他邏輯運算,包括邏輯與。例如,邏輯 xor 沒有與 all 或 any 等效的值。以上是如何對多個 NumPy 陣列執行邏輯 OR/AND 運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!