「配列の軸」の版間の差分
提供: 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次元配列とその配列インデックスの関係を表したものが下図です。