「配列の軸」の版間の差分

提供: tknotebook
移動: 案内検索
8行: 8行:
 
そこで「軸(axis)」を簡単に説明してみようと思います。
 
そこで「軸(axis)」を簡単に説明してみようと思います。
  
* 次元
+
 
 +
== 多次元配列 ==
 +
 
 +
用語等を解説したいので、とりあえず3次元配列を中心に話を進めます。
 +
 
 +
まず、3×3×3(shape = (3, 3, 3)) の配列を作ってみます。
 +
 
 +
 
 +
python の REPL にこんなコードを入力すると
 +
 
 +
import numpy as np
 +
 +
a = np.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]  ]
 +
    ]
 +
)
 +
 +
print(repr(a))
 +
 
 +
3次元配列はこんな感じで表示されます。
 +
 
 +
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]]])
 +
 
 +
numpyの ndarray は自身を表示するとき、最も下位の次元の要素を横に並べて表示し、他の次元は縦に並べて表示するので、かなり見にくいです。
 +
 
 +
この配列の第1次元の2つ目、第2次元3つ目、第3次元の1つ目にアクセスするには
 +
a[1][2][0]
 +
と書きますが、numpyの配列は
 +
a[1, 2, 0]
 +
とも書けます。便利ですね。もちろん値は 16 になります。
 +
 
 +
この3次元配列とその配列インデックスの関係を表したものが下図です。

2022年5月4日 (水) 07:24時点における版

メインページ>コンピュータの部屋#Python>Numpy Tips


Numpy を使用していると axis というパラメータによく出くわしますが、 あまりよい解説がなく戸惑う人が多いと思います。

そこで「軸(axis)」を簡単に説明してみようと思います。


多次元配列

用語等を解説したいので、とりあえず3次元配列を中心に話を進めます。

まず、3×3×3(shape = (3, 3, 3)) の配列を作ってみます。


python の REPL にこんなコードを入力すると

import numpy as np

a = np.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]  ]
    ]
)

print(repr(a))

3次元配列はこんな感じで表示されます。

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]]])

numpyの ndarray は自身を表示するとき、最も下位の次元の要素を横に並べて表示し、他の次元は縦に並べて表示するので、かなり見にくいです。

この配列の第1次元の2つ目、第2次元3つ目、第3次元の1つ目にアクセスするには

a[1][2][0]

と書きますが、numpyの配列は

a[1, 2, 0]

とも書けます。便利ですね。もちろん値は 16 になります。

この3次元配列とその配列インデックスの関係を表したものが下図です。