在使用numpy进行数据相关的任务时,有时会遇到需要将两个数组拼接在一起,下面就通过代码示例的方式来记录学习使用np.vstack和np.hstack完成拼接/堆叠的功能。
np.vstack((a, b))
垂直堆叠,要求两个数组矩阵具有相同的列数(以二维数组为例)
np.hstack((a, b))
水平堆叠,要求两个数组矩阵具有相同的行数(以二维数组为例)
代码示例
import numpy as np
a = np.array([[1,2,3,4]])
b = np.array([[5,6,7,8]])
c = np.array([[100,200],[300,400]])
# 垂直堆叠
v_arr = np.vstack((a, b)) # 2个1X4 -> 1个2X4
print("垂直堆叠np.vstack:{},{} ->{}".format(a.shape, b.shape, v_arr.shape))
# 水平堆叠
h_arr = np.hstack((v_arr, c)) # 2X4 和 2X2 -> 1个2X4
print("水平堆叠np.hstack:{},{} ->{}".format(v_arr.shape, c.shape, h_arr.shape))
上述代码的输出结果
垂直堆叠np.vstack:(1, 4),(1, 4) ->(2, 4)
水平堆叠np.hstack:(2, 4),(2, 2) ->(2, 6)