详解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)

相关推荐