一発で配列の形状を変更!array.reshapeのスマートな使い方
array.reshapeの使い方
array.reshape()
は、NumPyの多次元配列(ndarray
)の形状を変更するための関数です。引数に新しい形状を指定することで、配列の要素数が変わらない範囲で形状を変更できます。
具体的には、array.reshape(new_shape)
のように、新しい形状を表すタプルを引数に渡します。ただし、元の配列の要素数と新しい形状の要素数が一致する必要があります。
例えば、以下のような 1 次元配列を考えます。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
この配列を、3行2列の 2 次元配列に変形するには、以下のようにします。
b = a.reshape((3, 2))
これにより、a
は [1, 2, 3, 4, 5, 6]
という 1 次元配列から、
[[1, 2],
[3, 4],
[5, 6]]
という 3 行 2 列の 2 次元配列 b
に変換されます。
なお、reshape()
によって元の配列のデータ自体が変更されるわけではなく、新しい形状の配列を作成するだけです。
array.reshapeの便利な使い方
reshape()
メソッドを使うとき、引数に-1
を指定すると、その次元のサイズを自動的に計算して、元の配列のサイズと同じになるように設定します。
例えば、(3, 4)
のサイズを持つ配列を1次元の配列に変換する場合、次のようにreshape(-1)
を指定します。
import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
b = a.reshape(-1)
print(b)
出力:
[ 1 2 3 4 5 6 7 8 9 10 11 12]
この場合、reshape(-1)
は (3, 4)
のサイズの配列を自動的に1次元の配列に変換します。このように、reshape(-1)
を使用すると、配列を必要な形状に変換するために必要なサイズの計算を自動的に行うことができます。