np.stack()的用法
np.stack(arrays,axis = )
numpy文档解释作用是沿新轴连接一系列数组
解释一下其中的参数
arrays:数组,要求输入每个数组必须具有相同的形状
axis :轴,意思就是沿着哪一个新轴进行stack操作,
axis=0就是第一个维度,依此类推,axis=-1就是最后一个维度
返回: 返回stack后的数组比输入数组多一个维
文档有点难以理解,我们从例子进行仔细理解
例子理解
我们从简单的一维数组开始
import numpy as np
a=np.arange(3)
b=np.arange(3,6)
print("a:",a,"a.shape:",a.shape)
print("b:",b,"b.shape:",b.shape)
#输出
#a: [0 1 2] a.shape: (3,)
#b: [3 4 5] b.shape: (3,)
使用np.stack()
采取了axis=0,也就是为原数组新增一个维度,这个维度在第0位,然后连接数组
c=np.stack((a,b),axis=0)
print("c:\n",c,"\nc.shape:",c.shape)
#输出
#c:
# [[0 1 2]
# [3 4 5]]
#c.shape: (2, 3)
采取了axis=1,也就是为原数组新增一个维度,这个维度在第1位,然后连接数组
c=np.stack((a,b),axis=1)
print("c:\n",c,"\nc.shape:",c.shape)
#输出
#c:
# [[0 3]
# [1 4]
# [2 5]]
#c.shape: (3, 2)
输入多个数组的stack操作
d=np.stack((a,b,-a,-b),axis=0)
print("d:\n",d,"\nd.shape:",d.shape)
#输出
#d:
# [[ 0 1 2]
# [ 3 4 5]
# [ 0 -1 -2]
# [-3 -4 -5]]
#d.shape: (4, 3)
d=np.stack((a,b,-a,-b),axis=1)
print("d:\n",d,"\nd.shape:",d.shape)
#输出
#d:
#[[ 0 3 0 -3]
# [ 1 4 -1 -4]
# [ 2 5 -2 -5]]
#d.shape: (3, 4)