详解Python中numpy与pandas的axis参数用法
本文详细解析Python中numpy和pandas库的axis参数用法。通过具体代码实例,说明axis=0和axis=1在二维数组及DataFrame中的横纵轴操作差异,并简要介绍三维Panel数据的轴处理逻辑,帮助开发者准确进行数据计算。
axis参数基本概念
在对数据进行计算或处理时,通常需要在水平方向或垂直方向执行操作,此时必须明确指定axis参数的取值。
- 当axis设置为0时,表示对水平方向(即第0轴)进行操作。
- 当axis设置为1时,表示对垂直方向(即第1轴)进行操作。
numpy库中的axis应用
以下通过具体代码示例,详细解析numpy库中横轴与纵轴axis参数的应用。
In [1]: import numpy as np
#生成一个3行4列的数组
In [2]: a = np.arange(12).reshape(3,4)
In [3]: a
Out[3]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
#axis= 0 对a的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [4]: a.sum(axis = 0)
Out[4]: array([12, 15, 18, 21])
#axis= 1 对a的纵轴进行操作,在运算的过程中其运算的方向表现为横向运算
In [5]: a.sum(axis = 1)
Out[5]: array([ 6, 22, 38])
pandas DataFrame的axis应用
接着,通过代码示例展示pandas库中DataFrame对象的横轴与纵轴axis参数应用。
In [8]: b = pd.DataFrame(np.arange(24).reshape(4,6))
In [9]: b
Out[9]:
0 1 2 3 4 5
0 0 1 2 3 4 5
1 6 7 8 9 10 11
2 12 13 14 15 16 17
3 18 19 20 21 22 23
#axis= 0 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [10]: b.sum(axis = 0)
Out[10]:
0 36
1 40
2 44
3 48
4 52
5 56
dtype: int64
#axis= 1 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [11]: b.sum(axis = 1)
Out[11]:
0 15
1 51
2 87
3 123
dtype: int64

pandas Panel的axis应用
此外,通过代码示例解析pandas库中Panel对象的axis参数应用。
In [18]: np.arange(24).reshape(2,3,4)
Out[18]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
#生成面板数据
In [19]: c = pd.Panel(np.arange(24).reshape(2,3,4))
In [24]: c
Out[24]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 4 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 2
Minor_axis axis: 0 to 3
#对Items axis轴的数据进行操作,也就是panel里面的0轴:
In [20]: c.sum(axis = 0)
Out[20]:
0 1 2 3
0 12 14 16 18
1 20 22 24 26
2 28 30 32 34
对Major_axis axis轴的数据进行操作
In [21]: c.sum(axis = 1)
Out[21]:
0 1
0 12 48
1 15 51
2 18 54
3 21 57
对Minor_axis axis轴的数据进行操作
In [22]: c.sum(axis = 2)
Out[22]:
0 1
0 6 54
1 22 70
2 38 86

多维数组的轴匹配逻辑
对于二维数组,操作顺序为先水平后垂直;对于三维数组,则遵循从最外层开始,逐层按照先水平后垂直的逻辑匹配轴。
以上内容涵盖了本文的核心知识点,希望能为读者的学习提供有益参考,欢迎持续关注本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









