数组的合并与堆叠
numpy.concatenate 函数用于沿指定轴连接两个或多个相同形状的数组。
numpy.concatenate((a1, a2, …), axis=0)
a1,a2 … 相同类型的数组序列
axis 连接数组的轴的方向,默认值为0
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(a)
print(b)
print(np.concatenate((a, b), axis=0))
print(np.concatenate((a, b), axis=1))
print(np.concatenate((a, b, a, b), axis=1))
[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[1 2]
[3 4]
[5 6]
[7 8]]
[[1 2 5 6]
[3 4 7 8]]
[[1 2 5 6 1 2 5 6]
[3 4 7 8 3 4 7 8]]
numpy.stack 函数沿指定轴连接数组序列。
numpy.stack((a1, a2, …), axis=0)
a1,a2 … 相同类型的数组序列
axis 连接数组的轴的方向,默认值为0
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(a)
print(b)
print(np.stack((a, b), axis=0))
print(np.stack((a, b), axis=1))
[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]
堆叠的结果为三维数组。
numpy.hstack 函数
对于二维数组,在水平方向进行堆叠,但是数组的维度保持不变。函数效果等价于numpy.concatenate((a1, a2, …), axis=1)。
numpy.vstack函数
对于二维数组,在垂直方向进行堆叠,但是数组的维度保持不变。函数效果等价于numpy.concatenate((a1, a2, …), axis=0)。
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(a)
print(b)
print(np.hstack((a, b)))
print(np.vstack(