NumPy配列の情報を取得:次元数、形状、サイズをマスターしよう


 


NumPyはPythonで数値計算を効率的に行うためのライブラリです。特に多次元配列を扱う際にその真価を発揮します。NumPy配列(ndarray)を使いこなす上で、その基本的な属性である次元数形状、**サイズ(全要素数)**を理解することは非常に重要です。これらの情報は、配列の構造を把握し、適切な操作を行うために不可欠だからです。

この記事では、NumPy配列の次元数、形状、サイズをそれぞれ取得する方法について、具体的なコード例を交えながら解説します。


 

NumPy配列の基本属性

 

まずは、NumPy配列の「次元数」「形状」「サイズ」がそれぞれ何を指すのか理解しましょう。

 

次元数 (ndim: number of dimensions)

 

配列が持つ軸(次元)の数を示します。例えば、1次元配列はndim=1、2次元配列はndim=2となります。

 

形状 (shape: tuple of array dimensions)

 

各次元の要素数をタプルで示します。例えば、2行3列の配列であれば(2, 3)となります。

 

サイズ (size: total number of elements)

 

配列に含まれる全要素の数を示します。形状の各要素を掛け合わせた値と等しくなります。


 

NumPy配列の情報を取得する方法

 

これらの情報は、NumPy配列の属性として簡単に取得できます。

 

次元数を取得する (.ndim)

 

NumPy配列の次元数は、ndim属性を使って取得できます。

Python
 
import numpy as np

# 1次元配列
arr1 = np.array([1, 2, 3])
print(f"arr1の次元数: {arr1.ndim}")

# 2次元配列
arr2 = np.array([[1, 2], [3, 4]])
print(f"arr2の次元数: {arr2.ndim}")

# 3次元配列
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(f"arr3の次元数: {arr3.ndim}")

実行結果:

arr1の次元数: 1
arr2の次元数: 2
arr3の次元数: 3

 

形状を取得する (.shape)

 

NumPy配列の形状は、shape属性を使ってタプルとして取得できます。

Python
 
import numpy as np

# 1次元配列
arr1 = np.array([1, 2, 3, 4, 5])
print(f"arr1の形状: {arr1.shape}")

# 2次元配列
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(f"arr2の形状: {arr2.shape}")

# 3次元配列
arr3 = np.zeros((2, 3, 4)) # 要素が全て0の2x3x4の配列を作成
print(f"arr3の形状: {arr3.shape}")

実行結果:

arr1の形状: (5,)
arr2の形状: (2, 3)
arr3の形状: (2, 3, 4)

1次元配列の場合、形状は要素数を示す単一のタプル(例:(5,))として返されることに注意してください。

 

サイズ(全要素数)を取得する (.size)

 

NumPy配列に含まれる全要素の数は、size属性を使って取得できます。

Python
 
import numpy as np

# 1次元配列
arr1 = np.array([1, 2, 3, 4, 5])
print(f"arr1のサイズ: {arr1.size}")

# 2次元配列
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(f"arr2のサイズ: {arr2.size}")

# 3次元配列
arr3 = np.ones((2, 3, 4)) # 要素が全て1の2x3x4の配列を作成
print(f"arr3のサイズ: {arr3.size}")

実行結果:

arr1のサイズ: 5
arr2のサイズ: 6
arr3のサイズ: 24

sizeshapeの各要素を掛け合わせた結果と一致します。例えば、arr2の形状は(2, 3)なので、となり、sizeになります。


 

まとめ

 

NumPy配列のndimshapesize属性を理解し、適切に利用することで、配列の構造を正確に把握し、データ分析や数値計算をより効率的に進めることができます。これらの属性はNumPyの操作の基礎となるため、ぜひマスターしてくださいね。