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 サイトの他の関連記事を参照してください。