【毎日Python】Pythonで配列の形状を変換する方法|numpy.reshape

Pythonで配列の次元数を変更する方法です。
使用するのは、Pythonのnumpyのreshape関数です。

import numpy as np

このような1次元配列を使用します。

a_1 = np.array([1, 2, 3, 4, 5, 6])  

まず、2次元配列に変更してみましょう。
reshape関数の第一引数に変更したい配列を指定します。
第二引数に、タプルまたはリストで変更後の形状を指定します。
今回はタプルを使用します。
タプルの一番目の要素に行列、二番目の要素に列数を指定します。
実行します。
1次元配列を、2行3列の2次元配列に変更することができました。

np.reshape(a_1, (2, 3))

実行結果:

array([[1, 2, 3],
       [4, 5, 6]])

次に、3次元配列に変更してみましょう。
多次元配列に変更する場合は、タプルまたはリストの一番目の要素に次元数を指定します。
実行します。
1行2列の3次元配列に変更することができました。

np.reshape(a_1, (3, 1, 2))

実行結果:

array([[[1, 2]],

       [[3, 4]],

       [[5, 6]]])

なお、行数または列数を-1に指定すると、自動的に2次元配列が作成されます。

np.reshape(a_1, (3, 1, -1))

実行結果:

array([[[1, 2]],

       [[3, 4]],

       [[5, 6]]])

関連メソッド

【毎日Python】Pythonで配列を作成する方法|NumPy.arange

【毎日Python】Pythonで全ての要素が0や1の配列を作成する方法|numpy.zeros/ones

【こつこつPython】Pythonで要素を指定せずに配列を作成する方法|numpy.empty