single
配列の形状変更
メニューを表示するにはスワイプしてください
NumPy における 配列のリシェイプ は、すべての要素を保持したまま配列の形状を変更する操作。多くの 機械学習 ライブラリの関数やメソッドが特定の形状の配列を必要とするため、機械学習でよく使用される操作。
配列の形状
NumPy 配列の shape は、各次元(axis)ごとの要素数を示す tuple。
例えば、長さが 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次元配列に変形したい場合に特に便利です。この場合、行数は要素数と同じになり(自動計算されます)、列数は1になります。
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つを試してチャットを始めてください