
171
7.1 NumPy 配列
7.1.2
配列のインデックス指定とスライス
1
次元配列は、
Python
リストと同様にインデックス指定やスライス操作をします。
a = np.array([1, 2, 3, 4, 5, 6])
a[2] #
出力:
3
a[3:5] #
出力:
array([4, 5])
# 0
から
4
までの要素を
1
つおきに
0
に設定する
a[:4:2] = 0 #
出力:
array([0, 2, 0, 4, 5, 6])
a[::-1] #
出力:
array([6, 5, 4, 3, 2, 1])
、逆順
多次元配列のインデックス指定は
1
次元と同様です。次元ごとに独自のインデックス指定とス
ライス操作があり、カンマ区切りタプルで指定します
†
。図
7-1
にその動作を示します。■
選択タプルのオブジェクト数が次元数よりも少ない場合には、残りの次元はすべて選択されたと
みなします(
:
)。インデックスをすべて選択するために省略記号を使用することもでき、必要な数
のオブジェクトに拡張します。
a = np.arange(8)
a.shape = (2, 2, 2)
a[1] == a[1,:] == a[1,:,:]
a[...,0] == a[:,:,0]
7.1.3
基本操作
NumPy
配列の優れた点は、基本的な(しかし、基本的すぎない)数学演算を通常の数値変数と
† すべてのインデックスを選ぶには、省略形のドット表記(例えば、
[..1:3]
)があります。
図
7-1
NumPy
での多次元インデックス指定