0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】NumPyの3次元配列まとめ|shape・要素の取得・スライスの考え方

Posted at

この投稿は、NumPyの3次元配列について学習した内容を整理した記録です。2次元配列までは理解できても、3次元になると少しイメージしづらかったので、具体例を使ってまとめました。

配列の次元と[]のネストの関係

NumPyの配列は、[]の入れ子(ネスト)構造の深さ=次元数になります。

例:1次元配列([]が1段)

np.array([1, 2, 3])
# → shape: (3,) → 1次元配列(ベクトル)

例:2次元配列([]が2段)

np.array([[1, 2], [3, 4]])
# → shape: (2, 2) → 2次元配列(行列)

例:3次元配列([]が3段)

np.array([
    [[1, 2], [3, 4]],
    [[5, 6], [7, 8]]
])
# → shape: (2, 2, 2) → 3次元配列(階層構造)

ポイント:リストのネストが1段深くなるごとに次元が1つ増える


3次元配列とは?

NumPyの3次元配列は、**「階層・行・列」**の3つの軸を持つ配列です。
2次元配列が「表(マトリクス)」なら、3次元配列は「その表を何枚も重ねた立体構造」のようなものです。

イメージ:Excelの「シートが何枚もあるブック」

配列の作成(3次元)

3次元配列は、リストのリストのリストnp.array() に渡すことで作成できます。

import numpy as np

a = np.array([
    [[1, 2], [3, 4]],
    [[5, 6], [7, 8]]
])
print(a)

このときの配列 a の構造は以下のようなイメージです:

  • 2階層(軸0)
  • 各階層に 2行(軸1) × 2列(軸2) の行列がある
[
  [ [1, 2], [3, 4] ],
  [ [5, 6], [7, 8] ]
]

shapeで構造を確認する

print(a.shape)  # (2, 2, 2)

これは「2階層 × 2行 × 2列」の3次元構造であることを意味します。

ndimで次元数を確認する

print(a.ndim)  # 3

要素を取り出す(インデックス指定)

3次元配列では、3つのインデックスを使って要素を指定します。

print(a[0, 0, 1])  # 出力: 2(1階層目・1行目・2列目)
print(a[1, 1, 0])  # 出力: 7(2階層目・2行目・1列目)

スライスで取り出す

特定の軸方向で複数の要素をまとめて取得できます。

# 全階層から、1行目・すべての列を取得
print(a[:, 0, :])
# 出力:
# [[1 2]
#  [5 6]]
# 2階層目のすべての行・すべての列を取得
print(a[1, :, :])
# 出力:
# [[5 6]
#  [7 8]]
# 全階層・全行から、1列目だけを取り出す
print(a[:, :, 0])
# 出力:
# [[1 3]
#  [5 7]]

要素の再代入

値を変更することもできます。

a[0, 1, 1] = 99
print(a)

変更された位置:1階層目・2行目・2列目(元の値は4)

まとめ

操作 結果
配列の作成 np.array([[[...]]]) 3次元配列を作成できる
次元の確認 a.ndim 3
形状の確認 a.shape 例えば (2, 3, 4)
要素の取得 a[階層, 行, 列] 単一の値
スライス取得 a[:, :, 0] など 配列の一部を取得
再代入 a[1, 0, 1] = 新しい値 値を更新できる

NumPyの配列は、[]のネストが深くなるにつれて次元が増えていきます。3次元配列では、**「階層 → 行 → 列」**の順でインデックスを指定します。最初は混乱しやすいですが、shapeやスライスを使って少しずつ慣れていこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?