single
配列の形状変更
メニューを表示するにはスワイプしてください
NumPy における 配列のリシェイプ は、すべての要素を保持したまま配列の形状を変更する操作。多くの 機械学習 ライブラリの関数やメソッドでは、配列が特定の形状であることが求められるため、よく使用される操作。
配列の形状
NumPy 配列の shape は、各次元(axis)ごとの要素数を示す タプル。
例えば、長さが 5 の1次元配列は形状が (5,) となり、3 行 4 列の2次元配列は形状が (3, 4) となります。
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
NumPy 配列には、形状を変更するための .reshape() メソッドがあります。結果となる配列の shape を、整数、整数のタプル、または個別の整数として引数に渡します。
このメソッドは配列をインプレースで変更せず、新しい配列を返します。
実際には、.reshape() は元の配列のビューを返すため、リシェイプ後の配列に加えた変更は元の配列にも反映されます。
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
リシェイプ後の配列の要素数は元の配列と同じでなければならないため、任意の形状を指定することはできません。
この例では、配列を3行4列(3x4)の形状や、2つのブロックで各ブロックが2行3列(2x2x3)の形状に変形しても、要素数は合計12個のままです。
-1を使ったリシェイプ
NumPy では、-1 メソッドで .reshape() を指定すると、その次元のサイズが元の配列サイズから自動的に計算され、要素数は変わりません。
.reshape(-1, 1) は、機械学習で1次元配列を1列の2次元配列に変形したい場合に特に便利です。この場合、行数は要素数と同じになり(自動計算されます)。
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
変形後の配列は、5 行 1 列の 2次元配列 として保存され、形状は (5, 1) です。対照的に、元の 1次元配列 の形状は (5,) であり、これは 1要素のタプル です。任意の1次元配列において、形状は常に (n,) となり、n は要素数を表します。
numpy.reshape()
NumPy の reshape() 関数は .reshape() メソッドと同じですが、最初の引数として 配列 を渡す必要があります。shape パラメータには、整数のタプル または 単一の整数 を渡すことができ、例として np.reshape(array, (3, 4)) があります:
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
スワイプしてコーディングを開始
sales_data_2021 配列には、2021年の2つの製品に対する四半期ごとの売上データがシミュレートされています。最初の4要素は最初の製品の四半期ごとの売上、最後の4要素は2番目の製品の四半期ごとの売上を表します。
sales_data_2021の適切なメソッドを使用して、2次元配列に変形してください。- 最初の行には最初の製品の四半期ごとの売上を含めてください。
- 2行目には2番目の製品の四半期ごとの売上を含めてください。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください