时间:2022-06-22 09:37:40 | 栏目:Python代码 | 点击:次
在写代码时,经常会遇到多个矩阵数组拼接的情况,numpy里dstack, hstack, vstack, 都有拼接的作用,那么这些函数是怎么执行的,他们的结果又如何呢?
按深度顺序堆叠arrays。当数组为2维数组(M,N)或1维数组(N,)时,首先分别将其维度改变为(M,N,1)、(1,N,1),然后沿着第三根轴(r/g/b通道)进行拼接。
栗子:
# 一维 a = np.array([1, 2]) b = np.array([3, 4]) print(np.dstack((a,b))) # 二维 a = np.array([[1, 1], [2, 2], [3, 3]]) b = np.array([[4, 4], [5, 5], [6, 6]]) print(np.dstack((a,b))) # 运行结果 [[[1 3] [2 4]]] [[[1 4] [1 4]] [[2 5] [2 5]] [[3 6] [3 6]]]
水平方向(列)顺序堆叠arrays。
栗子:
import numpy as np # 一维 a = np.array([1, 2]) b = np.array([3, 4]) print(np.hstack((a,b))) # 二维 a = np.array([[1, 1], [2, 2], [3, 3]]) b = np.array([[4, 4], [5, 5], [6, 6]]) print(np.hstack((a,b))) # 运行结果 [1 2 3 4] [[1 1 4 4] [2 2 5 5] [3 3 6 6]]
垂直方向(行)顺序堆叠arrays。
栗子:
# 一维 a = np.array([1, 2]) b = np.array([3, 4]) print(np.vstack((a,b))) # 二维 a = np.array([[1, 1], [2, 2], [3, 3]]) b = np.array([[4, 4], [5, 5], [6, 6]]) print(np.vstack((a,b))) # 运行结果 [[1 2] [3 4]] [[1 1] [2 2] [3 3] [4 4] [5 5] [6 6]]