數據可視化基礎專題(三十五):Pandas基礎(十五) 關於axis參數的理解


來源:https://zhuanlan.zhihu.com/p/115646862

之前一直對pandas和numpy里的axis 參數理解的不透徹,今天把它寫下來加深印象。 axis = 0 是代表跨行,而axis = 1 是代表跨列,想明白這一點,對於其他的操作就都想明白了。 numpy 官方文檔對axis的解釋很簡單,但是卻很有用。numpy官方文檔

Axes are defined for arrays with more than one dimension. A 2-dimensional array has two corresponding axes: the first running vertically downwards across rows (axis 0), and the second running horizontally across columns (axis 1).

 

 

 

二維數組有2個軸,0軸和1軸,以前我一直理解成axis = 0代表行,axis = 1 代表列,但是到了求運算的時候,比如sum(),mean()的時候,卻往往是反的,其實並沒有反,是我沒有理解透。

1. axis = 0,指的就是跨行,也就是沿着行標簽index垂直向下執行。

2. axis = 1,指的是跨列,也就是沿着列名水平方向執行

對於經典的問題,下面的問題我們來解釋一下:

 

也就是說,當axis = 0的時候,我們是在跨行進行操作的,而當我們指定了某一個索引,它就跨不了行了,只能在特定的行上執行操作;對於一些算數運算,跨行操作就變成了一列一列的操作,也就是比如我取了第一行的一個值,然后再向下取第二個行的值,再向下取第三個值,依次類推,就是一列。

而當axis = 1 的時候,就是跨列在水平方向上操作,而當我們指定了某一個列的時候,就不能跨列了,只能在這個列上執行;對於算數運算sum(),mean()求值的時候,就是在橫向上遍歷每行,對每行的數據進行操作,說簡單點,就是我在第一列取了一個值,再在第二列取了第二個值,然后在第三列取第三個值,最終就是一行值了,所以最終就是對每行進行操作。

我們來用代碼示例以下:

df1 = DataFrame(np.array([[1,2,3,4],[5,6,7,8]]),index = ['a','b'],columns = ['one','two','three','four'])

 

 

 

 

 

 

pandas 中drop方法axis參數默認是0,如果我們需要刪除列的話,必須要指定axis = 1,否則就可能報錯,除非索引有和列名重名的。

另外本文的理解特別感謝這篇博客,我看了其他的博客說的都不是太明白。

https://www.cnblogs.com/wangcuican/p/11984829.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM