numpy 中的 array 是经常使用的数据结构,尤其是一维、二维结构
难免用到拼接操作,numpy 提供了一些方法实现不同拼接效果,在此进行比较整理
主要包括:concatenate(),stack(),vstack(),hstack(),row_stack(),column_stack()
1、concatenate()
在现有维度上连接多个 array,是 array 连接的通用方法
concatenate((array1, array2, ...), axis=0, dtype=None)
(array1, array2, ...) 为多个 array 的 tuple
axis 默认第一个维度,若为 None,则先进行扁平化操作再拼接
dtype 可用于指定目的数据类型
其他参数略
需要拼接的方向上要有相同维度,否则报错
2、stack()
在一个新维度上连接多个array,即回创建一个新的维度
numpy.stack((array1, array2, ...), axis=0)
(array1, array2, ...) 为多个 array 的 tuple
axis 默认第一个维度,不能为 None
其他参数略
stack 之后维数加一(例子中维数变为3),但方向由 axis 设定
3、vstack() 和 hstack()
vstack(),hstack() 分别在垂直方向(堆叠多行),水平方向(堆叠多列)上连接多个 array
vstack((array1, array2, ...))
hstack((array1, array2, ...))
(array1, array2, ...) 为多个 array 的 tuple,一般使用的 array 不超过三维,更高维应使用上面更通用的函数
4、row_stack() 和 column_stack()
row_stack((array1, array2, ...))
column_stack((array1, array2, ...))
(array1, array2, ...) 为多个一维或二维 array 的 tuple
对于一维 array,分别以行或列的方向进行拼接,与上面稍有区别
输入二维 array 时,与 vstack(),hstack() 是一样的