在 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))
输出结果: