PythonのNumPyライブラリには、配列の要素に基づいて条件に応じた処理を行うnp.where
関数があります。この関数を使うと、ある条件を満たす要素だけを抽出したり、条件に応じて値を変更したり、複数の条件に基づいて値を割り当てたりすることができます。
例えば、以下のコードは配列内の要素値が-2以下または2以上の場合は配列内の値はそのままで、違う場合は0にするプログラムを作成します。
import numpy as np
a = np.array([-3,-2,-1,0,1,2,3])
print(np.where((a<=-2) | (a >=2), a, 0))
このコードを実行すると、[-3 -2 0 0 0 2 3]
と出力されます。論理和 |
を使うことで条件 (a<=-2)
と (a >=2)
のどちらかを満たしていれば真となり、元の配列aの要素値となり、それ以外は0となりました。
また、以下のコードは配列から、50以上かつ75以下のデータはそのまま、条件に合致しないデータはNoneにした、新しい配列を作成します。
import numpy as np
arr = np.array([0, 25, 50, 75, 100])
arr_filter = np.where((arr>=50) & (arr<=75), arr, None)
print(arr_filter)
このコードを実行すると、[None None 50 75 None]
と出力されます。
以上のように、np.where
関数を使うと、複数の条件を適用した処理を簡単に実装することができます。これにより、データ分析や機械学習の前処理など、さまざまな場面で役立つでしょう。.