Pythonでインデックスを指定して配列の値を置き換える方法です。
使用するのはPythonのnumpyライブラリのput関数です。
import numpy as np
このような配列を用意します。
a = np.array([1, 5, 12, 0, 5, 1])
まず、put関数の第一引数に配列を指定します。
続けて、第二引数に変更する値のインデックス、第三引数に置き換え後の値を指定します。
実行します。
5を500に変更することができました。
np.put(a, 5, 500)
実行結果:
array([ 1, 500, 12, 0, 5, 1])
複数の値を同時に変更することもできます。
変更する値のインデックスと、置き換え後の値をそれぞれリストで指定します。
実行します。
複数の値を同時に置き換えることができました。
np.put(a, [0, 1, 2], [10,20,30])
a
実行結果:
array([10, 20, 30, 0, 5, 1])
なお、配列のインデックス数を超えるインデックスを指定した場合は、エラーになります。
このエラーへの対処方法は主に2つあります。
1つ目は、引数modeにwrapを渡す方法です。
wrapを渡すと、指定したインデックスにたどり着くまでループします。
今回の場合は、インデックスが5まである配列に6を指定したため、一番最初の値が変更されます。
2つ目は、引数modeにclipを渡す方法です。
clipを渡すと、配列の末尾の要素の値が変更されます。
関連メソッド
【毎日Python】Pythonでデータフレームの要素を置換する方法|replace