はじめに
NumPyのshape
属性は、NumPy配列の形状(次元ごとの要素数)を取得または設定するために使用されます。この記事では、shape
属性の基本的な使い方から応用例まで、詳しく解説します。
shape属性の基本
NumPy配列の形状を取得するには、配列オブジェクトのshape
属性を参照します。
import numpy as np
# 2x3の配列を作成
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape) # 出力: (2, 3)
配列の形状の変更
配列の形状を変更するには、reshape
メソッドを使用します。この際、元の配列の要素数と変更後の形状の要素数が一致している必要があります。
reshaped_array = array.reshape(3, 2)
print(reshaped_array.shape) # 出力: (3, 2)
多次元配列の形状
多次元配列でもshape
属性を使用して形状を確認できます。例えば、3次元配列の場合:
# 3x2x2の3次元配列を作成
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]])
print(array_3d.shape) # 出力: (3, 2, 2)
応用例
shape
属性は、データの前処理、機械学習モデルへの入力データの準備、画像処理など、さまざまなシナリオで役立ちます。
機械学習におけるデータ準備
機械学習モデルに入力するためのデータセットの形状を調整する例。
# モデルに入力するために形状を変更
data_for_model = array.reshape(-1, 1)
print(data_for_model.shape) # 出力: (6, 1)
よくある質問
shape属性とsize属性の違いは何ですか?
shape
は配列の形状(各次元の要素数)を表し、size
は配列内の総要素数を表します。
shapeを変更すると元の配列はどうなりますか?
reshape
メソッドは新しい配列を返すため、元の配列は変更されません。
形状が不明な次元で配列の形状を変更するには?
形状を変更する際に、一つの次元を-1と指定することで、その次元のサイズが自動的に計算されます。