NumPy配列のインデックスでの要素参照と代入

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.]

関連

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。