ホームページ >バックエンド開発 >Python チュートリアル >複数の NumPy 配列に対して論理 OR/AND 演算を実行するにはどうすればよいですか?

複数の NumPy 配列に対して論理 OR/AND 演算を実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-27 17:52:11635ブラウズ

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

Numpy の論理演算を複数の配列に適用する

Numpy では、logical_or は 2 つの配列のみを比較できます。ここで疑問が生じます: 3 つ以上の配列の和集合を見つけるにはどうすればよいでしょうか?同じ質問が、logical_and と複数の配列の共通部分の取得にも当てはまります。

Numpy の論理関数の制限

Numpy は、logical_or を 2 つの引数 (x1 と x2) に明示的に制限します。

論理の連鎖操作

logical_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))

result: [ True, True, True, False]

このアプローチは、多次元配列でも機能します:

xyz = np.array((x, y, z))
result = np.logical_or.reduce(xyz)

結果: [ True、True、True、False]

Python のReduce

Python の functools.reduce も使用できます:

import functools
result = functools.reduce(np.logical_or, (x, y, z))

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

Numpy の Any Function

Numpy の任意の関数も使用できます使用できますが、明示的な軸引数が必要です:

result = np.any((x, y, z), axis=0)

結果: [ True、True、True、False]

論理積 (logical_and) およびその他の演算

同様のメソッドが、logical_and などの他の論理演算に適用されます。たとえば、logical_xor には、all または any に相当するものはありません。

以上が複数の NumPy 配列に対して論理 OR/AND 演算を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。