np.stack(array, axis)官方对axis参数的解释——解决所有axis参数问题

np.stack(array, axis)

背景

在python很多与numpy相关的库和深度学习框架中,经常会涉及到axis这个参数,也有很多博主根据自己的实验结果,给出了一个规律,但因为我们找到的规律太过复杂,不方记忆,也不方便使用。所以本文以np.stack()函数为例,去讲解axis这个参数的官方解释。

API

numpy.stack(array, axis=0), stack堆叠的意思
为了方便理解,我们先注意该函数的返回值:

return: 返回一个array数组,返回数组的维度比堆叠的单个数组维度多一维!且多的那一个维度为堆叠array的个数!例如要堆叠的数组是二维,shape为(5,4),要堆叠的数组个数为3个,那么返回的结果一定是三维,且结果一定是(3,5,4),(5,3,4),(5,4,3)中的一个。可以注意到结果为3插在不同的位置。这个位置也正是我们下面要说的axis参数的真正含义!

Parameters:

array:一个array的集合,要求集合中的每一个数组的shape必须是相同的

axis: 该参数规定了在结果返回的array中,多的那一个维度(堆叠数组的数量),在结果数组中的哪一个维度。axis =0 表示在第一个维度,axis=-1表示在最后一个维度。

代码实例
# 定义三个array
a = np.zeros([5,4],dtype=np.uint8)
b = np.zeros([5,4],dtype=np.uint8)
c = np.zeros([5,4],dtype=np.uint8)
x = np.stack((a,b,c),axis=0)
x.shape
>>> output
(3, 5, 4)
np.stack((a,b,c),axis=1).shape
>>> output
(5, 3, 4)
np.stack((a,b,c),axis=-1).shape
>>> output
(5, 4, 3)
记忆说明

博主之前也一直纠结于axis与返回结果之间的具体关系(怎么堆叠),但是根据写代码的过程中,我发现按照上述shape变换的规律就可以确定参数,以满足我们大部分的要求。而不需要我们去了解具体的堆叠方法。

相关网址

numpy 官方网址np.stack()
其他博主根据结果找到的规律,如果有小伙伴依旧想找到其中的规律,可以看这个博主的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值