要素の参照 スライスを用いた

【例題】 Array[1,2,3,4,5,6,7,8,9]について「最初から5番目までの要素」を「1つ飛び」で表示する.
以下のコードを読んで実行してみよう.

numpy_l = np.array([1,2,3,4,5,6,7,8,9])
print(numpy_l[0:5:2]) 0から5番目最後の要素は含まれない)まで 一つ飛ばし→2つごと
[1 3 5]

Array[1,2,3,4,5,6,7,8,9]の「3番目以降の要素」を「2つ飛び」で表示させてみよう.

numpy_1 = np.array([1,2,3,4,5,6,7,8,9])
print(numpy_1[2::3]) 3番目(0スタートなので2)から、最後(この場合は空欄)で2つ飛び(3つごと)
[3 6 9]

2次元の場合

numpy_l = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(numpy_l[1:3, 0:2]) [([]の位置に対して),([]内の要素について)]
             []は1つしかいらない
[[4 5]
 [7 8]]
numpy_l = np.array([[1,2], [1,2], [1,2]])
# 2列目を1次元Arrayとして表示
print(numpy_l[:, 1]) [:,]はすべての[]にたいしてのこと
[2 2 2]

stepを用いた参照

2次元Arrayでstepを使うと特殊な参照ができる.
【例題1】 Array[[1,2,3], [4,5,6], [7,8,9]]の「奇数行目」を表示させる.

numpy_l = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(numpy_l[::2])
[[1 2 3]
[7 8 9]]

Array[[1,2,3,4], [5,6,7,8]]の「偶数列目」を表示させよう.

numpy_3 = np.array([[1,2,3,4],[5,6,7,8]])
print(numpy_3[:,1::2])
[[2 4]
 [6 8]]

step負の数を指定すると,参照はインデックスの降順になる.

numpy_l = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(numpy_l[2::-1, :]) 2から最後まで、-1なので逆順で
[[7 8 9]
 [4 5 6]
 [1 2 3]]

stepが負のとき,start > stopにする必要があることに注意しよう.

Array[[1,2,3], [4,5,6], [7,8,9]]を「列について降順」に表示させよう

numpy_4 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(numpy_4[:,2::-1])
[[3 2 1]
 [6 5 4]
 [9 8 7]]

コメント

タイトルとURLをコピーしました