针对Numpy中axis的理解

本文通过numpy.mean()函数详细解析了numpy库中axis参数的作用方式及含义,包括不同维度下的操作理解和结果形状变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对numpy中经常看到axis这个参数。这里对axis这个参数的学习做个记录。

本文章以numpy.mean()函数为例

一、numpy.mean()不带任何参数的时候

不带任何参数的时候是对所有元素求平均。

例如

x = np.array([[[2,3,4],[4,5,6],[7,8,9],[10,11,12]],[[1,2,3],[3,4,5],[1,2,3],[3,4,5]]])
print(x.shape)
print(np.mean(x))

输出:(2, 4, 3)

4.875

二、numpy.mean()带axis参数的时候。

通常情况下,看到别人的文章都说axis=0 是对列操作,axis=1是对行操作。有时候很让人费解,因为如果是多维度的情况下该如何理解这个axis呢?

三、了解shape的几何意义和代数意义

假如数据显示如上图所示,

首先要理解shape的三个数字分别代表什么(2,4,3)

几何意义:但是第一个是2代表两个红色框,

第二个是4代表两个蓝色框,(行数)

第三个是3代表两个紫色框。  (列数)

代数意义:第一个2的确立是将原数据去掉最外层的中括号,然后逗号分隔的数量就可以确立shape中的第一个数字,

x = np.array([[[2,3,4],[4,5,6],[7,8,9],[10,11,12]],[[1,2,3],[3,4,5],[1,2,3],[3,4,5]]])

 

去掉最外面一个括号之后,逗号分割为红色两个部分。

因为ndarray是矩阵,所以红蓝两部分的shape完全相同。所以下一步确立第二个数字的时候我们只看红色部分

 

左边红色框内的去掉最外层中括号然后逗号分隔,分割为蓝色的4个部分,所以第二个数字确立为4

相同的原理,第二个数字将2,3,4分割为3个部分,所以shape的第三个数字是3

 四、axis=0的时候。

是针对红色框的相同位置进行做某种运算,例如常见的是求和,求最小值,求平均值。

axis=0的操作的结果的shape是(4,3)

axis=0 就是两个红色框对应位置的算术运算(求和,求最小值,求最大值,求平均数等等)

元数据的shape(2,4,3)  最前面的2消失了。(axis等于几,元数据的shape中第几个维度就消失)

五、axis=1的时候。

axis=0的时候非常好理解,也非常直观。

axis=1的时候。我们首先确定shape,结果的shape是(2,3),即通常说的2行3列

2行的结果,肯定是从2个红色框分别得出的结果,

2,4,5,10经过某种运算得出第一行第一列的结果,

3,4,8,11得出第一行第二列的结果。

4,6,9,12得出第一行第三列的结果。

 

将axis与shape的顺序结合起来理解。还是很好理解的。

六、那么axis=3的时候。

我们知道结果的shape是(2,4)

那么你知道这个结果是怎么的出来的吗?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值