Pythonで条件を指定して値を置き換える方法です。
使用するのは、Pythonのnumpyライブラリのputmask関数です。
import numpy as np
まず、このような配列で試してみましょう。
a_1 = np.array([1, 5, 2, 6, 8, 3, 4])
putmask関数の第一引数に配列を指定します。
続けて、第二引数に条件を指定します。
今回は、配列の値が5以上の場合とします。
続けて、第三引数に変更後の値を指定します。
実行します。
5以上の値を100に変更することができました。
np.putmask(a_1, a_1 >= 5, 100)
a_1
実行結果:
array([ 1, 100, 2, 100, 100, 3, 4])
次に、2次元配列で試してみましょう。
a_2 = np.array([[1, 7, 5],
[4, 3, 8],
[12, 2, 1]])
先ほど同じ条件を指定して実行します。
2次配列においても、問題なく値を変更することができました。
np.putmask(a_2, a_2 >= 5, 100)
a_2
実行結果:
array([[ 1, 100, 100],
[ 4, 3, 100],
[100, 2, 1]])
また、変更後の値を複数指定することもできます。
第三引数に変更後の値をリストで指定します。
実行します。
条件に一致する値を、10と100に順番ずつ変更することができました。
np.putmask(a_2, a_2 >= 5, [10,100])
a_2
実行結果:
array([[ 1, 100, 10],
[ 4, 3, 100],
[ 10, 2, 1]])