小白学Python:通俗理解axis

本文介绍了如何通俗理解NumPy中的axis参数,特别是在处理多维数组时的作用。通过理解axis,我们可以知道它如何影响数组的维度,并通过观察函数处理后数组的shape来确定axis的值。例如,np.sum()函数中,axis=0表示对行求和,axis=1表示对列求和。掌握这一原则有助于更好地应用NumPy函数。

引言

我们在学习NumPy的函数时会发现,很多函数都包含参数axis,可见理解axis是NumPy修炼之路上的必修课,本文就带大家通俗理解axis。

理解axis

axis可以简单的理解为维度或者轴,比如矩阵(二维数组)有两个维度或两个轴,即行和列,N维数组有N个维度或N个轴。

当数组有多个轴时,我们就会对axis进行标号(从0开始),比如axis=0、axis=1、axis=2 ···

到这里相信大家都能理解,很多读者的疑问可能在于:如何知道某个axis对应的是数组的哪个维度?尤其在使用NumPy函数时,假如要对数组的某个维度进行处理,如何取设定axis的值?比如对于矩阵,axis=0对应行还是列,或者说,np.sum(axis=0)是对各行求和还是对各列求和?

其实很简单,大家就记住一个原则:axis会把数组的对应axis的size变成0(因此,函数返回的数组维数会比原数组少1)

记住这个原则,我们就能迅速理解NumPy函数在设定不同的axis时对数组是如何处理的,下面使用np.sum()进行举例:

对于矩阵(N,M),当axis=0时,np.sum()之后的矩阵形状为(M,),即第1维度(轴0)的size变成了0,而其他维度的size不变;当axis=1时,np.sum()之后的矩阵形状为(N,),即第2维度(轴1)的size变成了0。因此我们很容易明白,np.sum(axis=0)是对矩阵的各列求和,np.sum(axis=1)是对矩阵的各行求和。

注:1维数组的shape均写成(N,),其中N是该维的size

a=np.random.randint(0,3,(3,4))
print (a)
>>>
[[1 0 2 0]
 [1 0 1 2]
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值