首頁 >後端開發 >Python教學 >如何使用 NumPy 的「邏輯或」高效執行多數組聯合運算?

如何使用 NumPy 的「邏輯或」高效執行多數組聯合運算?

Barbara Streisand
Barbara Streisand原創
2024-12-07 15:15:14327瀏覽

How to Efficiently Perform Multi-Array Union Operations with NumPy's `logical_or`?

用於多數組並集運算的Numpy Logical_or

Numpy 的邏輯_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)
# result: [ True,  True,  True,  False]

更通用的方法涉及使用reduce:

result = np.logical_or.reduce((x, y, z))
# result: [ True,  True,  True,  False]

此方法可以應用於兩個多維數組和一維數組的元組。此外,Python 的functools.reduce 可以以類似的方式使用:

result = functools.reduce(np.logical_or, (x, y, z))
# result: [ True,  True,  True,  False]

為了方便起見,Numpy 提供了any,它本質上沿著軸執行邏輯OR 縮減:

result = np.any((x, y, z), axis=0)
# result: [ True,  True,  True,  False]

類似原則適用於Logical_and 和其他邏輯運算符,但Logical_xor 除外,它缺少對應的all/any 類型函數。

以上是如何使用 NumPy 的「邏輯或」高效執行多數組聯合運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn