【毎日Python】Pythonで配列のインデックスを指定して値を置換する方法|numpy.put

put
こつこつPython

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

【毎日Python】Pythonで文字列を置換する方法|str.replace

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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト