【python】詳解numpy庫與pandas庫axis=0,axis= 1軸的用法
阿新 • • 發佈:2019-01-07
對資料進行操作時,經常需要在橫軸方向或者數軸方向對資料進行操作,這時需要設定引數axis的值:
- axis = 0 代表對橫軸操作,也就是第0軸;
- axis = 1 代表對縱軸操作,也就是第1軸;
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 引數例項詳解:
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 引數例項詳解:
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
如果是2維陣列,先橫軸後縱軸;如果是3維陣列,先最外層,然後一層一層按照先橫軸再縱軸的邏輯進行匹配軸。