NumPy配列のインデックスでの要素参照と代入 2015/09/06
NumPyのndarrayは、Pythonの通常のリストと同様に []
でインデックスを指定して要素を参照・代入することができる。インデックスは0から始まる。インデックスを負にすると、後ろから数えてくれる点も、通常のリストと同様である。
ndarr1 = np.array([0, 1, 2, 3, 4, 5])
print(ndarr1[1])
# 出力結果
# 1
# インデックスを負にすると後ろから数える
print(ndarr1[-1])
# 出力結果
# 5
ndarr1[0] = 10
print(ndarr1)
# 出力結果
# [10 1 2 3 4 5]
ndarr1[-1] = 30
print(ndarr1)
# 出力結果
# [10 1 2 3 4 30]
インデックスがサイズ以上の場合や、負の場合で後ろから数えても先頭を超えてしまう場合には
IndexError: index 10 is out of bounds for axis 0 with size 6
というような例外が投げられる。
多次元配列の要素を参照するには []
の中にコンマ区切りでインデックスを指定する。
ndarr1 = np.array([[1., 2., 3.], [4., 5., 6.]])
print(ndarr1[1])
# 出力結果
# [ 4. 5. 6.]
print(ndarr1[1, 2])
# 出力結果
# 6.0
# [] を複数並べてもいい
print(ndarr1[1][2])
# 出力結果
# 6.0
コロンを使って [:, 2]
のように書くと、内側の軸のインデックスだけを指定することもできる。これは後述のスライス表記との組み合わせである。
print(ndarr1[:, 2])
# 出力結果
# [ 3. 6.]
関連