详解numpy库与pandas库axis=0,axis= 1轴的用法
对数据进行操作时,经常需要在横轴方向或者数轴方向对数据进行操作,这时需要设定参数axis的值:
axis = 0 代表对横轴操作,也就是第0轴;
axis = 1 代表对纵轴操作,也就是第1轴;
如果简单点来说,就是0轴匹配的是index, 涉及上下运算;1轴匹配的是columns, 涉及左右运算。
numpy库中横轴、纵轴 axis 参数实例详解:
In [1]: import numpy as np#生成一个3行4列的数组In [2]: a = np.arange(12).reshape(3,4)In [3]: aOut[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])1234567891011121314
pandas库DataFrame中横轴、纵轴 axis 参数实例详解:
In [8]: b = pd.DataFrame(np.arange(24).reshape(4,6))In [9]: bOut[9]: 0 1 2 3 4 50 0 1 2 3 4 51 6 7 8 9 10 112 12 13 14 15 16 173 18 19 20 21 22 23#axis= 0 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算In [10]: b.sum(axis = 0)Out[10]:0 361 402 443 484 525 56dtype: int64#axis= 1 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算In [11]: b.sum(axis = 1)Out[11]:0 151 512 873 123dtype: int641234567891011121314151617181920212223242526
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]: cOut[24]:<class 'pandas.core.panel.Panel'>Dimensions: 2 (items) x 3 (major_axis) x 4 (minor_axis)Items axis: 0 to 1Major_axis axis: 0 to 2Minor_axis axis: 0 to 3#对Items axis轴的数据进行操作,也就是panel里面的0轴:In [20]: c.sum(axis = 0)Out[20]: 0 1 2 30 12 14 16 181 20 22 24 262 28 30 32 34对Major_axis axis轴的数据进行操作In [21]: c.sum(axis = 1)Out[21]: 0 10 12 481 15 512 18 543 21 57对Minor_axis axis轴的数据进行操作In [22]: c.sum(axis = 2)Out[22]: 0 10 6 541 22 702 38 8612345678910111213141516171819202122232425262728293031323334353637383940
如果是2维数组,先横轴后纵轴;如果是3维数组,先最外层,然后一层一层按照先横轴再纵轴的逻辑进行匹配轴。
赞 (0)