1次元配列→2次元配列に変換(reshapeメソッド)
reshape関数を使うことで、1次元から2次元の配列に変換することができます。
以下のように、[0, 1, 2, 3, 4, 5]の配列を用意し、reshapeメソッドで、第一引数に行数、第2引数に列数を渡して変換できます。
IN
import numpy as np
arr1 = np.array([0, 1, 2, 3, 4, 5])
arr1.reshape((2, 3))
OUT
array([[0, 1, 2],
[3, 4, 5]])
2次元配列→1次元配列に変換
ravelメソッド
ravelメソッドを使うことで、2次元から1次元の配列に変換できます。
また、ravelメソッドは参照コピーです。
以下の例では、1次元配列に変換しています。
また、参照コピーのため、途中でarr1の要素を変更しましたが、arr2にも反映されています。
IN
import numpy as np
arr1 = np.array([[0, 1, 2],
[3, 4, 5]])
arr2 = arr1.ravel() # array([0, 1, 2, 3, 4, 5])
arr1[0][0] = 1
arr2
OUT
array([1, 1, 2, 3, 4, 5])
flattenメソッド
flattenメソッドは、機能としては、ravalメソッドとほとんど同じです。
異なる点としては、参照コピーでなく値コピーであることです。
以下の例では、arr1の要素を途中で変更してもarr2には影響がないことが分かります。
IN
import numpy as np
arr1 = np.array([[0, 1, 2],
[3, 4, 5]])
arr2 = arr1.flatten() # array([0, 1, 2, 3, 4, 5])
arr1[0][0] = 1
arr2
OUT
array([0, 1, 2, 3, 4, 5])