關於python中axis的個人理解

2021-10-06 06:31:35 字數 897 閱讀 2147

個人理解:axis很簡單。在函式內使用axis的意義是指定函式所執行的維度,如二維上的sum(axis=1)就是指對axis=1的維度上的資料進行累加,但它會將該維度上的運算反映到其他維度上,從而達到降維的作用,即sum(axis=1)的值卻是反映在axis=0所表達的軸上的。並且axis表達的基本意義是軸,所以所有的運算均是以單個軸進行的,如之前二維上sum(axis=1)是一行一行的資料分開運算的,這一概念在高維度更加得以體現。

運算上公升到更高的維度,超出通常可以理解的三維以後這種特徵應該更加明顯。這時axis指代的就只是維度的代號,sum(axis=num)所表達的意思就是對其它維度在指定維度上的資料進行整合,從而將該維度減去,留下其餘維度的資料。

注:在針對二維上,axis=1指的是從左到右,即水平方向的,行所在的維度,相對的axis=0指的就是從上至下,即列所在的維度。

q:為什麼二維上,axis=1是橫向的,axis=0是縱向的?

a:因為通過逆向推理會發現,在三維乃至更高維度上的運算均是作用於其它維度在指定維度上的資料,如三維在某個指定維度上的資料會是乙個二維資料,所以sum(axis=0)最終會得到了乙個二維的資料。

重申axis是軸的概念,這裡可以發現運算下的結果是二維的,運算的內容是其它維度上在指定維度上的資料分別相加,而且是相對應的方式,如平面a上的[0,0]位置資料一定是跟平面b上[0,0]位置的資料相加,即以軸為單位,乙個乙個執行sum函式。

容易產生的誤區是會理解為將其它維度的所有資料整合至該維度,這是錯誤的!

理由:誤區理解在於想用其它維度的資料表現該維度的存在,但其實應該做的是消去該維度的存在。在二維上非常容易產生這樣的誤區,但上公升至三維就會發現不合理的地方:如sum(axis=0)將得到乙個二維資料,而不是乙個一維資料。

Python中axis的意思

對於乙個 5,4,3,2 的陣列data dim 0 5 dim 1 4 dim 2 3 dim 3 2 axis 0,操作時只有第0維的下標變化其他不變,操作結束後變為 4,3,2 axis 1,操作時只有第1維的下標變化其他不變,操作結束後變為 5,3,2 axis 2,操作時只有第2維的下標變...

關於Numpy中的axis問題

由於numpy經常用於處理多維陣列,我們常理解的行和列一般指二維陣列,但對於計算機來說,它只認識下標 一維陣列如a 3 只有乙個下標,axis 0對應陣列的列標,使用axis 1會報錯.對於二維陣列b 2 2 axis 0對應陣列的行標,axis 0對應陣列的行標.對於三維陣列則分別對應頁列行.對應...

關於numpy中axis 0和axis的區別的問題

很多人在學習numpy時,遇到axis 0和axis 1的問題,究竟是如何定義的 如一下列子 import numpy as np ww np.arange 10 reshape 2,5 print ww 結果 array 0,1,2,3,4 5,6,7,8,9 ww.mean axis 0 沿著縱...