垂直堆叠(Vertical Stacking)
np.vstack
np.vstack
函数用于在垂直方向上堆叠数组,即沿着第一个轴(对于二维数组来说是行)进行连接。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
# 使用 np.vstack 在垂直方向上堆叠这两个数组
c = np.vstack((a, b))
print(c)
'''
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
'''
水平堆叠(Horizontal Stacking)
np.hstack
np.hstack
函数用于在水平方向上堆叠数组,即沿着第二个轴(对于二维数组来说是列)进行连接。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
# 使用 np.hstack 在水平方向上堆叠这两个数组(注意,要求数组的行数相同)
c = np.hstack((a, b))
print(c)
'''
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
'''
注意,当使用np.hstack
时,需要确保数组在第一个维度(即行数)上是兼容的。
np.concatenate
更通用的方法是使用np.concatenate
,它允许指定沿哪个轴连接数组。
使用np.concatenate
进行垂直堆叠,应传递具有相同列数的数组,并将axis
参数设置为0; 对于水平堆叠,应传递具有相同行数的数组,并将axis
参数设置为1。
# 沿着第一个轴(行)连接,类似于 vstack
c_vertical = np.concatenate((a, b), axis=0)
print(c_vertical)
'''
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
'''
# 沿着第二个轴(列)连接,类似于 hstack
c_horizontal = np.concatenate((a, b), axis=1)
print(c_horizontal)
'''
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
'''