スライスによる抽出
コロン記号:はスライスとよばれ、範囲を指定した要素の抽出に用いられる。具体例を見てみよう。
まず、形状が (5, 2) の配列を用意する。
code:slice11.py
import numpy as np
print('# 配列', x.shape, type(x))
print(x)
print('# 要素をピンポイントで指定')
指定した次元全体の抽出
添字の箇所にスライスを書くと、「該当する全ての要素」という意味になる。
2次元配列を行列と考えたときに、1番目の添字は列要素に相当するので、
code:(続き).py
print('# 0列目\n', col, col.shape, type(col))
print('# 1列目\n', col, col.shape, type(col))
2番目の添字が行要素に相当するので、
code:(続き).py
print('# 2行目\n', row, row.shape, type(row))
print('# 終端行\n', row, row.shape, type(row))
以上のような抽出を行うことができる。抽出された配列は次元数が1つ減ることに注意、つまり、2次元配列をもとに新たな1次元配列が作られる。
範囲と刻みの指定
スライスの前後に数値を置くことで、範囲の開始や終了要素を指定できる。
配列名 [ 開始:終了]
code:slice12.py
import numpy as np
a = np.arange(10)
print('全要素 -------------')
print(a) # (1)
print('2~要素 -------------')
print('~7要素 -------------')
print('2~7要素 -------------')
2つのスライスを用いると、3番目の値で刻み幅を指定できる。
配列名[開始:終了:刻み]
code:slice13.py
import numpy as np
a = np.arange(10)
print('全要素を2刻みで -----')
print('8~3要素を-2刻みで -----')
/icons/hr.icon
※ ブラウザのバックボタンで戻る
https://scrapbox.io/files/65041f7e7f5099001c844ec3.png