この記事では、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 ( " , 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 ( " , 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 ( " , 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()関数 – ドキュメント