Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 配列の形状変更 | セクション
NumPyによる数値計算
セクション 1.  21
single

single

book配列の形状変更

メニューを表示するにはスワイプしてください

NumPy における 配列のリシェイプ は、すべての要素を保持したまま配列の形状を変更する操作。多くの 機械学習 ライブラリの関数やメソッドが特定の形状の配列を必要とするため、機械学習でよく使用される操作。

配列の形状

Note
定義

NumPy 配列の shape は、各次元(axis)ごとの要素数を示す tuple

例えば、長さが 5 の1次元配列は形状が (5,) となり、34 列の2次元配列は形状が (3, 4) となる例:

1234
import 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)
copy

ndarray.reshape()

NumPy 配列には、形状を変更するための .reshape() メソッドがある。

結果となる配列の shape整数整数のタプル、または複数の整数として指定する。

このメソッドは配列をインプレースで変更せず、新しい配列を返す。

Note
注意

実際、.reshape() は元の配列のビューを返すため、リシェイプ後の配列に加えた変更は元の配列にも反映される。

123456789
import 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)
copy
Note
注意

リシェイプ後の配列の要素数は元の配列と同じでなければならないため、任意の形状を指定することはできない。

この例では、配列を3行4列3x4)の形状や、2つのブロックで各ブロックが2行3列2x2x3)の形状に変形しても、要素数は合計12個のままです。

-1を使ったリシェイプ

NumPyでは、-1メソッドで.reshape()を指定すると、その次元のサイズを元の配列サイズから自動的に計算し、要素数を変えずに変形します。

.reshape(-1, 1)は、機械学習で1次元配列を1列の2次元配列に変形したい場合に特に便利です。この場合、行数は要素数と同じになり(自動計算されます)、列数は1になります。

123456
import 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)
copy

リシェイプ後の配列は、51 列の 2 次元配列 として保存され、形状は (5, 1) です。これに対し、元の 1 次元配列 の形状は (5,) であり、これは 1 要素のタプル です。任意の 1 次元配列の形状は常に (n,) となり、n は要素数を表します。

numpy.reshape()

NumPyreshape() 関数は、.reshape() メソッドと同じですが、最初の引数として 配列 を渡す必要があります。shape パラメータには、整数のタプル または 単一の整数 を渡すことができます。例:np.reshape(array, (3, 4)):

123456
import 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)
copy
タスク

スワイプしてコーディングを開始

sales_data_2021 配列には、2021年の2つの製品に対する四半期ごとの売上データがシミュレートされています。最初の4要素は最初の製品の四半期ごとの売上、最後の4要素は2番目の製品の四半期ごとの売上を表します。

  1. sales_data_2021 の適切なメソッドを使用して、2次元配列に変形してください。
  2. 最初の行には最初の製品の四半期ごとの売上を含めてください。
  3. 2行目には2番目の製品の四半期ごとの売上を含めてください。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  21
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt