在 NumPy 中,合并数组也是最常见的操作之一,下表列举了常见的用于数组或向量合并的方法。
函数 | 描述 |
---|---|
np. append() | 内存占用大 |
np.concatenate() | 没有内存问题 |
np. stack() | 沿着新的轴加入一系列数组 |
np.hstack() | 堆栈数组垂直顺序(行) |
np.vstack() | 堆栈数组垂直顺序(列) |
np.dstack() | 堆栈数组按顺序深入(沿第3维) |
np.vsplit() | 将数组分解成垂直的多个子数组的列表 |
几点说明:
下面选择一些常用函数进行说明。
append() 函数可以合并一维数组:
import numpy as np
a =np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.append(a, b)
print(c)
# [1 2 3 4 5 6]
append() 也可以合并多维数组:
import numpy as np
a =np.arange(4).reshape(2, 2)
b = np.arange(4).reshape(2, 2)
# 按行合并
c = np.append(a, b, axis=0)
print('按行合并后的结果')
print(c)
print('合并后数据维度', c.shape)
# 按列合并
d = np.append(a, b, axis=1)
print('按列合并后的结果')
print(d)
print('合并后数据维度', d.shape)
输出结果:
沿指定轴连接数组或矩阵:
import numpy as np
a =np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
c = np.concatenate((a, b), axis=0)
print(c)
d = np.concatenate((a, b.T), axis=1)
print(d)
输出结果:
沿指定轴堆叠数组或矩阵:
import numpy as np
a =np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.stack((a, b), axis=0))
输出结果: