Pythonのnumpyライブラリでは、配列の形状を把握し、形状に基づいた操作を行うための重要な道具があります。それがshapeです。
PythonとnumpyのShapeの基本
Pythonのnumpyライブラリでは、ndarrayオブジェクトのshape属性を使用して、配列の形状を取得したり変更したりが可能です。Shapeは配列の各次元の大きさをタプルとして返します。
import numpy as np
# 1次元配列を作成
a = np.array([1, 2, 3, 4, 5])
# 形状を出力
print(a.shape) # (5,) #1次元配列を意味する
# 2次元配列を作成
b = np.array([[1, 2, 3], [4, 5, 6]])
# 形状を出力
print(b.shape) # (2, 3) #2次元配列を意味する
Shapeのプロパティとメソッド
shapeはnumpy配列のプロパティであり、その配列がどのような形状を持っているかを示します。またこのshapeプロパティを変更することで、配列の形状を変更可能です。
import numpy as np
# 1次元配列を作成
arr = np.array([1, 2, 3, 4, 5, 6])
# 配列の形状を出力
print("元の形状:", arr.shape)
# 形状を(3, 2)に変更
arr_reshaped = arr.reshape(3, 2)
# 変更後の形状と内容を出力
print("変更後の形状:", arr_reshaped.shape)
print("変更後の内容:")
print(arr_reshaped)
ただし、この時元の配列の要素数と変更後の要素数が一致する必要があります。例えば、要素数が6つの1次元配列のshapeを (3, 2)に変更することは可能ですが、 (4, 2)など要素数が一致しない形状には変更できません。
多次元配列とShape
numpyでは、1次元配列だけでなく、2次元配列や3次元配列など、任意の次元数の配列を扱えます。これら多次元配列の形状も、shapeで取得できます。
import numpy as np
# 3次元配列を作成
arr_3d = np.array([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ])
# 配列の形状を出力
shape_3d = arr_3d.shape
print("3次元配列の形状:", shape_3d)
# 深さ、行、列を取得
depth, rows, cols = shape_3d
print("深さ:", depth)
print("行:", rows)
print("列:", cols)
以上、Pythonとnumpyのshapeについて解説しました。この知識を活用して、Pythonでの配列操作をよりスムーズに行いましょう。.