NumPyは、Pythonの科学計算ライブラリで、多次元配列オブジェクト(ndarray)をサポートしています。
この配列は、同じ型の要素の集合を格納し、効率的に操作するための多数のメソッドと関数を提供します。
NumPyの次元数に関する重要な概念を以下に詳しく説明します。
次元(Dimension)
次元(dimension)は、配列の形状(shape)を定義するために使用されます。
例えば、スカラー(数値)は0次元、ベクトル(一次元配列)は1次元、行列(二次元配列)は2次元、そして三次元配列やそれ以上の次元を持つ配列も存在します。
次元数は通常、「階(axes)」と呼ばれます。
形状(Shape)
配列の形状は、各次元における要素数を表すタプルです。
例えば、形状が (3, 4) の配列は、3つの行と4つの列を持つ2次元配列です。
形状を調べるには、ndarray.shape
プロパティを使用します。
import numpy as np
# 2次元配列の例
array_2d = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
print(array_2d.shape) # 出力: (3, 4)
次元数(ndim)
次元数は配列が何次元であるかを示します。
次元数を調べるには、ndarray.ndim
プロパティを使用します。
print(array_2d.ndim) # 出力: 2
サイズ(size)
サイズは配列内の全要素数を表します。
サイズを調べるには、ndarray.size
プロパティを使用します。
print(array_2d.size) # 出力: 12
次元の追加と削除
次元の追加
次元を追加する方法の一つは np.expand_dims
関数を使用することです。
また、None
をインデックスとして使用することでも次元を追加できます。
# 1次元配列を作成
array_1d = np.array([1, 2, 3, 4])
# 2次元配列に変換
array_2d = np.expand_dims(array_1d, axis=0)
print(array_2d.shape) # 出力: (1, 4)
# もう一つの方法
array_2d_alt = array_1d[None, :]
print(array_2d_alt.shape) # 出力: (1, 4)
次元の削除
次元を削除する方法の一つは np.squeeze
関数を使用することです。
この関数は、サイズ1の次元を削除します。
# 3次元配列を作成
array_3d = np.array([[[1, 2, 3, 4]]])
# 2次元配列に変換
array_2d_squeezed = np.squeeze(array_3d)
print(array_2d_squeezed.shape) # 出力: (1, 4)
高次元配列の例
NumPyは任意の次元数の配列をサポートしています。
例えば、3次元配列や4次元配列を作成して操作することも容易です。
# 3次元配列の例
array_3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(array_3d.shape) # 出力: (2, 2, 3)
print(array_3d.ndim) # 出力: 3
# 4次元配列の例
array_4d = np.random.random((2, 2, 3, 3))
print(array_4d.shape) # 出力: (2, 2, 3, 3)
print(array_4d.ndim) # 出力: 4
まとめ
NumPyの次元数は、データの形状や構造を理解するために非常に重要です。
次元数を操作することで、データの形式を変換し、様々な数値計算を効率的に行うことができます。
NumPyの強力な次元操作機能を利用することで、複雑なデータ解析や計算をシンプルに実現することが可能です。
以上、Numpyの次元数についてでした。
最後までお読みいただき、ありがとうございました。