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