今天寫程序的時候發(fā)現(xiàn)兩個axis其實是有區(qū)別的软驰,程序如下
DataFrame
data.drop('two', axis =1)
Out[186]:
one three four
o 0 2 3
c 4 6 7
u 8 10 11
n 12 14 15
numpy
arr
Out[188]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
arr.sum(1)
Out[189]: array([ 6, 15, 24])
亂了吧,原因是沒有理解axis
簡單的來說就是axis=0代表跨行(down) = 列 = 行標簽們杀狡,而axis=1代表跨列(across) = 行 = 列標簽們記住這個就ok了
換句話說:
- 使用0值表示沿著每一列或行標簽\索引值向下執(zhí)行方法
- 使用1值表示沿著每一行或者列標簽模向執(zhí)行對應的方法
下圖代表在DataFrame當中axis為0和1時分別代表的含義:
另外呜象,記住恭陡,Pandas保持了Numpy對關鍵字axis的用法上煤,用法在Numpy庫的詞匯表當中有過解釋:
軸用來為超過一維的數(shù)組定義的屬性劫狠,二維數(shù)據(jù)擁有兩個軸:第0軸沿著行的垂直往下,第1軸沿著列的方向水平延伸呐矾。
回到代碼sum(1)行方向蜒犯,也就是行和荞膘,就是跨列
drop('two', axis = 1),列標簽們里面干掉標簽叫'two'的
就這么回事
參考文章:http://stackoverflow.com/questions/25773245/ambiguity-in-pandas-dataframe-numpy-array-axis-definition
https://docs.scipy.org/doc/numpy/glossary.html