快速理解axis

2021-09-27 03:42:57 字數 1479 閱讀 6120

axis在tensorflow和numpy中式經常出現的乙個引數,但是有時可能並不是很好的理解axis=0或者axis=1是沿著什麼方向進行計算的,經過我的實踐,在這裡寫出理解。

in [10]: a

out[10]:

array([[1, 2, 3],

[4, 5, 6]])

in [11]: np.amax(a , axis=0)

out[11]: array([4, 5, 6])

in [12]: np.amax(a, axis=1)

out[12]: array([3, 6])

* amax是求最大值

如上是乙個求二維矩陣在每個維度的最大值,當axis=0時,實際上是在列的方向求的最大值;而axis=1時是在行的方向球的最大值。

我們可以把括號當作axis來理解,最外層的括號對應著axis=0,再往內的括號對應axis=1。因此axis=0就是要把最外層的括號去掉。

我們把上述陣列放到座標軸上如下所示,座標有兩個軸。

我們發現[1, 2, 3]和[4, 5, 6]兩個向量沿縱軸方向排列,同時這兩個向量被最外層的所包裹。因此可以認為縱軸對應的是最外層的括號,axis=0就是在最外層的括號的方向上的計算,因此就是縱軸方向,最後結果就是[4, 5, 6]。

同理axis=1就是在內層括號的維度上進行計算,內層括號包裹的是每乙個向量,內層括號對應的是橫軸,於是結果就是[3, 6]

三維矩陣有三層括號,因此axis=0對應最外層,axis=1對應中層,axis=2對應最裡層。

我們再表示在座標軸上。可以看到最外層括號包裹的是兩個二維矩陣,這兩個二維矩陣排列的方向是向內的那個軸,因此axis=0對應的就是沿著這個軸上取最大值;而第二層包裹的是一維的向量,因此在第二層的向量方向取最大值。

當維度大於3的時候無法用座標軸表示,不過可以用同樣的思想進行理解。

如何理解Axis?

只有光頭才能變強。回顧前面 不知道大家最開始接觸到axis的時候是怎麼樣的,反正我是挺難理解的 我們可以發現tensorflow的很多api都有axis這個引數,如果我們對axis不了解,壓根不知道api是怎麼搞的。一句話總結axis axis可以方便我們將資料進行不同維度的處理。如果你像我一樣,發...

如何理解Axis?

只有光頭才能變強。回顧前面 不知道大家最開始接觸到axis的時候是怎麼樣的,反正我是挺難理解的.我們可以發現tensorflow的很多api都有axis這個引數,如果我們對axis不了解,壓根不知道api是怎麼搞的。一句話總結axis axis可以方便我們將資料進行不同維度的處理。如果你像我一樣,發...

如何理解Axis?

只有光頭才能變強。回顧前面 不知道大家最開始接觸到axis的時候是怎麼樣的,反正我是挺難理解的.我們可以發現tensorflow的很多api都有axis這個引數,如果我們對axis不了解,壓根不知道api是怎麼搞的。一句話總結axis axis可以方便我們將資料進行不同維度的處理。如果你像我一樣,發...