基本的なインデックス参照
Coddyの「NumPyの基礎」コースのレッスン 10/18。
Numpyの1次元配列は、Pythonのリストと同じようにインデックスを指定できます:
Pythonリストのインデックス指定:
lst = [1, 2, 3, 4]
lst[1] # --> 2Numpy配列のインデックス指定:
ary = np.array([1, 2, 3, 4])
ary[1] # --> 2しかし、次元が大きくなると面白くなります。
Pythonの2次元リストのインデックス指定:
lst = [[1, 2], [3, 4]]
lst[0][1] # --> 2Numpyの2次元配列のインデックス指定:
ary = np.array([[1, 2], [3, 4]])
ary[0,1] # --> 2 違いに注目してください: ary[0,1], lst[0][1]
Numpy配列でもリストと同じ構文 ary[0][1] を使用できますが、非効率的であるため、ary[0, 1] を使用する方が良いです。
ary[0][1]が非効率的なのは、最初のインデックスの後に新しい一時的な配列が作成され、その後で1によってインデックスが指定されるためです。
3次元配列のインデックスを指定するにはどうすればよいでしょうか?
ary = np.array([
[[1], [2]],
[[3], [4]]
])
ary[0, 0, 0] # --> 1
ary[0, 1, 0] # --> 2
ary[1, 0, 0] # --> 3
ary[1, 1, 0] # --> 4このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単3次元配列 ary から、値 5 を含む要素を(インデックスを使用して)取得してください。
自分で試してみよう
import numpy as np
ary = np.array([ [ [ 0, 1 ], [ 2, 3 ] ], [ [ 4, 5 ], [ 6, 7 ] ] ])
res = ary[] # <-- Complete the indexing
print(res) # Don't touch