矩阵串联 np.concatenate((a, b), axis=#)
可以简单认为 按某方向轴,两矩阵a b 相加的结果
- 当 axis=0时 按列-插入
- 当 axis=1时 按行-插入
- 当 axis=2时 先行后列-插入
三维数组和二维数组处理方式略微不同,主要体现在(矩阵串联前)插入前是否转置
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
#axis表示沿着某个轴拼接,注意维度要相适应
# axis=0 默认为列方向
np.concatenate((a, b), axis=0)
>>>
array([[1, 2],
[3, 4],
[5, 6]])
# axis=1为行方向的矩阵相加
np.concatenate((a, b.T), axis=1)
>>>
array([[1, 2, 5],
[3, 4, 6]])
# axis=2 数组行列两方向的矩阵相加,注意维度
np.concatenate((a, b), axis=0) 时,结果如下:把b转置再按列-插入
np.concatenate((a, b.T), axis=1) 时,结果如下:把b.T转置再逐行-插入
a = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
c = np.array([[[5,6,7],[7,8,9]],[[4,5,6],[5,6,7]]])
np.concatenate((a, c), axis=0)
>>>
array([[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
[[5 6 7]
[7 8 9]]
[[4 5 6]
[5 6 7]]])
np.concatenate((a, c), axis=1)
>>>
array([[[1, 2, 3],
[4, 5, 6],
[5, 6, 7],
[7, 8, 9]],
[[1, 2, 3],
[4, 5, 6],
[4, 5, 6],
[5, 6, 7]]])
np.concatenate((a, c), axis=2)
>>>
array([[[1, 2, 3, 5, 6, 7],
[4, 5, 6, 7, 8, 9]],
[[1, 2, 3, 4, 5, 6],
[4, 5, 6, 5, 6, 7]]])
np.concatenate((a, c), axis=0) 时,结果如下:按列-插入
np.concatenate((a, c), axis=1) 时,结果如下:按行-插入
np.concatenate((a, c), axis=2) 时,结果如下:先行后列-插入