PythonのNumPyライブラリには、行列の要素を効率的に置換するための機能が豊富に用意されています。ここでは、その中でも特によく使われるnumpy.where()
, numpy.put()
, numpy.place()
について解説します。
numpy.where()
numpy.where()
は条件文を満たす要素と満たさない要素を、それぞれ指定した数値やブール値に置き換える関数です。以下に、配列の偶数要素を0、奇数要素を1に置き換える例を示します。
import numpy as np
a = np.arange(1, 10).reshape(3, 3)
b = np.where(a % 2 == 0, 0, 1)
print(b)
numpy.put()
numpy.put()
は指定したインデックスの要素を置き換えます。この関数は元の配列を変更します。以下に、配列の0,2,4,6,8番目の要素を0に置き換える例を示します。
import numpy as np
array = np.ones((3, 3), dtype = np.int32)
np.put(array, [0, 2, 4, 6, 8], 0)
print(array)
numpy.place()
numpy.place()
は条件に合う要素を指定した要素で置き換えます。この関数は元の配列を変更します。以下に、配列の偶数要素を0に置き換える例を示します。
import numpy as np
array = np.arange(1, 13).reshape(3, 4)
np.place(array, array % 2 == 0, 0)
print(array)
これらの関数を適切に使い分けることで、PythonとNumPyを用いた行列操作がより効率的になります。.