numpyのreshapeメソッドの使い方|マイナスや次元追加、削除について解説する

スポンサーリンク

この記事では、Python numpy.reshape()関数の動作を理解します。

ご存知のように、PythonのNumPyモジュールは、数学データを操作し、扱うための膨大な量の関数を提供してくれています。

ここでは、Numpyのreshape()関数の機能を明らかにします。

それでは、始めましょう。

スポンサーリンク

Python numpy.reshape()関数の動作について

Python numpy.reshape()関数`は、配列の形状を変更する、つまり配列要素の次元を変更することができます

配列の再形成は、特定の次元に存在するデータ値の数を変更するのに役立ちます。

注意すべき重要な点は、reshape() 関数は配列のサイズを保持すること、つまり配列の要素数を変更しないことです。

次の節では、numpy.reshape()関数の構造について理解しましょう。

Python numpy.reshape()関数のシンタックス

array-name.reshape(shape)
  • シェイプ`。これは整数のタプルで、このタプルに従って要素が再形成されます。

reshape()関数にshapeを渡す処理を理解するために、例を考えてみましょう。

入力配列に 16 個の要素がある場合、それらのタプル値の積が要素数すなわち 16 になるような整数値を shape パラメータに渡す必要があります。

shapeパラメータには次のようなものがある。

  • [2,8]
  • [8,2]
  • [4,4]
  • [16,1]
  • [1,16]
  • [4,2,2]

それでは、以下の例を見て、numpy.reshape()関数について理解を深めてください。

Python numpy.reshape() の実装とその例

以下の例では、numpy.arange()関数を使用して16要素の1次元配列を作成しました。

さらに、reshape()関数を用いて、各次元が4要素の2次元配列にリシェイプしています。

import numpy as np
 
arr = np.arange(16)
print("Array elements:
"
, arr)
 
res = np.arange(16).reshape(4, 4)
print("
Array reshaped as 4 rows and 4 columns:
"
, res)

結果は以下の通りです。

Array elements:
 [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]
 
Array reshaped as 4 rows and 4 columns:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

さて,1次元配列を1次元あたり2要素の配列にリシェイプして変換した.

import numpy as np
 
arr = np.arange(16)
print("Array elements:
"
, arr)
 
res = np.arange(16).reshape(4,2,2)
print("
Array reshaped:
"
, res)

結果は以下の通りです。

Array elements:
 [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]
 
Array reshaped:
 [[[ 0  1]
  [ 2  3]]
 
 [[ 4  5]
  [ 6  7]]
 
 [[ 8  9]
  [10 11]]
 
 [[12 13]
  [14 15]]]

下の例では、reshape()関数に-1という値を渡して、2次元配列を1次元の配列に変換しています。

import numpy as np
 
arr = np.array([[1, 2, 3,4], [10, 11, 12,13],[5,6,7,8]])
print("Array elements:
"
, arr)
 
res = arr.reshape(-1)
print("
Array reshaped as 1-D Array:
"
, res)

結果は以下の通りです。

Array elements:
 [[ 1  2  3  4]
 [10 11 12 13]
 [ 5  6  7  8]]
 
Array reshaped as 1-D Array:
 [ 1  2  3  4 10 11 12 13  5  6  7  8]

まとめ

ここまでで、このトピックは終了です。

何か疑問があれば、お気軽にコメントください。

参考文献

  • NumPy reshape()関数 – ドキュメント
タイトルとURLをコピーしました