常见的主要有stack(),hstack(),vstack()这三个函数
-
stack(),按照指定的轴对数组序列进行联结。
共有三个参数,使用格式为numpy.stack(arrays, axis=0, out=None)
第一个参数是要连接的数组,数组的大小(shape)需要一致,如下图,a,b可以stack连接但是a,c不行
第二个参数是维度,axis=几,就代表以第几维的元素为单位进行叠加,结合下面的实际运行结果来说:
a,b,c分别是2x3的矩阵,组成的新矩阵为3x2x3,想象成3个二维矩阵[[1,2,3].[4,5,6]]依次叠加在一起axis的操作都是以新矩阵3x2x3的三维矩阵为基础进行的操作。
axis=0,就是以0这个维度的元素为单位,自成一个单位,d=3x2x3
axis =1,就是以1这个维度的元素为单位。所以得到e=2x3x3
axis=2, 就是以2这个维度的元素为单位。所以得到f = 2x3x3
-
hstack()
语法格式:numpy.hstack(tup)
参数:
tup:要叠加的数组序列,除了一维数组的堆叠可以是不同长度外,其它数组堆叠时,除了第二个轴的长度可以不同外,其它轴的长度必须相同。
a = np.array((1,2,3))
b = np.array((2,3,4))
np.hstack((a,b))
输出:
array([1, 2, 3, 2, 3, 4]) -
vstack()
沿着第一个轴堆叠数组。
语法格式:numpy.vstack(tup)
参数:
tup:ndarrays数组序列,如果是一维数组进行堆叠,则数组长度必须相同;除此之外,其它数组堆叠时,除数组第一个轴的长度可以不同,其它轴长度必须一样。
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
np.vstack((a,b))
输出:
array([[1, 2, 3],
[2, 3, 4]])