pythonの画像認識の機械学習などで、画像をopencvで読み込ませるとarrayで返ってくる。
データ前処理などで、このarray同士で結合させる場面などはよくあるため、まとめておく。
array配列同士の結合
ポイント
①numpyのnp.stackメソッドを使用する
②連結すると次元が一つ上がる
注意)連結する配列のshape(列数)は必ず一致している必要がある
import numpy as np
arr1 = np.arange(3) #array([0, 1, 2])
arr2 = np.arange(3, 6) #array([3, 4, 5])
arr3 = np.arange(6, 9) #array([6, 7, 8])
arr4 = np.arange(9, 12) array([ 9, 10, 11])
# 1次元同士の配列を横に重ねる(2次元になる)
arr5 = np.stack((arr1, arr2, arr3, arr4))
#array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
arr5.shape #(4, 3)
arr6 = np.array([[ 3, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
# 2次元同士の配列を横に重ねる(3次元になる)
arr7 = np.stack((arr5, arr6))
#array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]],
[[ 3, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]]])
arr7.shape #(2, 4, 3)