Python - numpy中axis的理解

本文详细解析了NumPy中轴(axis)的概念,解释了其如何表示数组的层级,并通过实例展示了在多维数组中如何使用axis参数进行操作,如求和等。对于理解和运用NumPy进行数据处理具有重要指导意义。

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

axis的本质是数组层级

numpy中的ndarray本质上是一个多维数组,axis表示数组层级

arr = np.array(np.arange(12).reshape(3,4))
print(arr)
"""
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

"""
print(arr.shape) # (3, 4)
  • axis=0,表示最外层的[],相应的arr.shape[0]为 3,最外层数组有3个元素;
  • axis=1,表示次外层的[],相应的arr.shape[1]为 4,这就表示,在最外层的3个数组元素中,每个数组元素中又有4个元素。

若函数中axis=i,则沿着第i个下标变化、其余下标都不变的方向进行操作

以元素下标的形式表示数组arr为:
arr[0][0] arr[0][1] arr[0][2] arr[0][3]arr[1][0] arr[1][1] arr[1][2] arr[1][3]arr[2][0] arr[2][1] arr[2][2] arr[2][3]arr[0][0]\ arr[0][1]\ arr[0][2]\ arr[0][3]\\ arr[1][0]\ arr[1][1]\ arr[1][2]\ arr[1][3]\\ arr[2][0]\ arr[2][1]\ arr[2][2]\ arr[2][3]\\ arr[0][0] arr[0][1] arr[0][2] arr[0][3]arr[1][0] arr[1][1] arr[1][2] arr[1][3]arr[2][0] arr[2][1] arr[2][2] arr[2][3]

"""
print(arr)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
"""
In [16]: arr.sum(axis=0)  # 表示沿着第0个索引变化,其它索引都不变的方向进行求和操作

Out[16]: array([12, 15, 18, 21])

# 相应的,在多维数组(dim=3,4,...)的情况中,也是如此

由以上结论,我们可以得到二维数组中axis含义的巧记方法:

  • 二维数组中的巧记方法(沿方向操作
    • axis=0,第一个索引变变化,第二个索引不变,即沿纵向操作
    • axis=1,第二个索引变变化,第一个索引不变,即沿横向操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值