【毎日Python】Pythonで配列の値が条件に一致するかを判定する方法|numpy.all

Pythonで配列の値が条件に一致するか判定する方法です。
使用するのは、Pythonのnumpyライブラリのall関数です。

import numpy as np

このような配列で試してみましょう。

a = np.array([[1, 7, 1, 3, 1], 
              [0, 1, 0, 3, 1], 
              [3, 8, 0, 6, 1]])

まず、all関数の引数に配列を指定して実行します。
Falseが返されました。
all関数は、デフォルトでは、各要素に0がある場合はFalse、0が無い場合はTrueが返されます。

np.all(a)

実行結果:

False

次に、列方向に判定してみましょう。
引数axisに0を渡して実行します。
列方向に、それぞれの判定結果を配列で取得することができました。

np.all(a, axis=0)

実行結果:

array([False,  True, False,  True,  True])

次に、行方向に判定してみましょう。
引数axisに1を渡して実行します。
行方向に、それぞれの判定結果を配列で取得することができました。

np.all(a, axis=1)

実行結果:

array([ True, False, False])

また、判定の条件を指定することもできます。
全ての値が5未満であるかを判定してみましょう。
実行します。
配列には5以上の値も含まれるため、Falseが返されました。

np.all(a < 5)

実行結果:

False

列方向、行方向も同様に実行することができます。

np.all(a < 5, axis=0)

実行結果:

array([ True, False,  True, False,  True])
np.all(a < 5, axis=1)

なお、似た関数でany関数があります。
any関数では、いずれかの値が条件に一致する場合は、Trueが返されます。

np.any(a < 5)

実行結果:

array([False,  True, False])

関連メソッド

【毎日Python】Pythonで配列の値を条件を指定して置換する方法|numpy.putmask