1. 程式人生 > 其它 >深入理解pyhton中的axis=0 和axis=1

深入理解pyhton中的axis=0 和axis=1

深入理解pyhton中的axis=0 和axis=1

其實axis的重點在於方向,而不是行和列。具體到各種用法而言也是如此。

如何理解axis:

axis是對陣列層級的刻畫,對axis正確的理解,就像他的名字一樣-----‘軸’,即axis表示的是沿著哪一個軸的方向。這一點對於理解axis很重要,也很容易被忽視,axis本身是指陣列的軸,在執行不同的函式時,具體的操作是沿著軸的方向進行的。axis的取值取決於資料的維度,如果資料是一維陣列那麼axis只有0,如果資料是二維的,那麼axis可以取0和1,如果資料是三維的,那麼axis就可以取0、1和2。

 

 其實從上面這張圖片中我們可以看到,在二維資料中,axis=0是沿著列的方向的,axis=1表示沿著行的方向的

即:

  • axis=0表示沿著列的方向,做逐行的操作
  • axis=1表示沿著行的方向,做逐列的操作

 

drop函式

 這裡會有一點繞,特別是去理解drop函式中的axis,很多人一開始沒有辦法理解和接受。我們再回過頭理解一下drop函式。

  • axis=1,drop函式刪除列

drop函式刪除資料列的時候需要指定列名(比如指定刪除ONE這一列),我們設定axis=1,這表示:對於ONE這列,遍歷所有索引(index),沿著水平方向對資料執行drop操作。

# 可以理解為先選列,再按行執行操作,如果刪除多列就會稍微好理解一點。

  • axis=0,drop函式刪除行

同樣如果我們要刪除行,我們要指定好要刪除的行名(比如指定刪除a這一行),我們設定axis=0,這表示:對於a這一行,遍歷所有的列(columns),我們沿著垂直方向對資料執行drop操作。

concat函式

是pandas下的一個合併資料的函式,axis=0表示縱向合併(沿著0軸方向),axis=1表示橫向合併(沿著1軸方向)

mean函式

和concat函式中的axis相對會好理解一點。當設定axis=0,就表示沿著0軸即列進行處理,對應的便是mean計算每一列的均值,

總結:

其實就需要記住drop那個特殊的例子,axis=0是刪除行,axis=1是刪除列