【Numpy,図】多次元配列(テンソル)のスライス処理([:, :, :])について

Numpyでの多次元配列(テンソル)のスライス処理([:, :, :])について紹介します。

サンプルコード

まず、3次元配列を生成します。

import numpy as np
>>> a1 = [[1,2,3],[4,5,6],[7,8,9]]
>>> a2 = [[10,11,12],[13,14,15],[16,17,18]]
>>> a3 = [[19,20,21],[22,23,24],[25,26,27]]
>> sample = np.array([a1,a2,a3])
>>> sample
array([[[ 1,  2,  3],
        [ 4,  5,  6],
        [ 7,  8,  9]],

       [[10, 11, 12],
        [13, 14, 15],
        [16, 17, 18]],

       [[19, 20, 21],
        [22, 23, 24],
        [25, 26, 27]]])

[x, :, :]

では、スライス処理をしてみます。
まず、[x, :, :]ですが、これは最初の次元(面)のx番目を取り出しています。

>>> sample[1,:,:]
array([[10, 11, 12],
       [13, 14, 15],
       [16, 17, 18]])
イメージ

[:, x, :]

[:, x, : ]は各面のx番目のを抽出します。

>>> sample[:,1,:]
array([[ 4,  5,  6],
       [13, 14, 15],
       [22, 23, 24]])
イメージ

[:, :, x ]

[:, :, x] は各面のx列のを抽出します。

>>> sample[:,:,2]
array([[ 3,  6,  9],
       [12, 15, 18],
       [21, 24, 27]])
イメージ
タイトルとURLをコピーしました