Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 配列のリシェイプ | よく使われるNumPy関数
NumPy基礎
セクション 3.  4
single

single

book配列のリシェイプ

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

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

配列の形状

Note
定義

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

例えば、長さが 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() メソッドがある。結果となる配列の形状を、整数整数のタプル、または個別の整数として渡すだけでよい。

このメソッドは配列をその場で変更せず、新しい配列を返す。

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

リシェイプ後の配列は、2次元配列として保存され、51 列の形状 (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実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

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

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

セクション 3.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt