首頁 > 後端開發 > Python教學 > 如何對多個 NumPy 陣列執行邏輯 OR/AND 運算?

如何對多個 NumPy 陣列執行邏輯 OR/AND 運算?

DDD
發布: 2024-11-27 17:52:11
原創
674 人瀏覽過

How Can I Perform Logical OR/AND Operations on Multiple NumPy Arrays?

將 Numpy 的邏輯運算應用於多個陣列

在 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))
登入後複製

結果:[ 真, 大, True, False]

Numpy 的Any函數

Numpy 的任意函數也可以使用,但需要明確軸參數:
result = np.any((x, y, z), axis=0)
登入後複製

結果: [ True, True, True, False]

邏輯與(邏輯與)和其他操作

類似的方法適用於其他邏輯運算,包括邏輯與。例如,邏輯 xor 沒有與 all 或 any 等效的值。

以上是如何對多個 NumPy 陣列執行邏輯 OR/AND 運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板