關於Numpy中的axis問題

2021-09-27 08:37:00 字數 1497 閱讀 9267

由於numpy經常用於處理多維陣列,我們常理解的行和列一般指二維陣列,但對於計算機來說,它只認識下標

一維陣列如a[3]只有乙個下標,axis=0對應陣列的列標, 使用axis=1會報錯.

對於二維陣列b[2][2],axis=0對應陣列的行標,axis=0對應陣列的行標.

對於三維陣列則分別對應.

對應**分析如下:

import numpy as np

a = np.arange(14,

2,-1

)b = np.arange(14,

2,-1

).reshape((3

,4))

其中a為一維陣列,b為二維陣列,內容如下:

a
array([14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  3])
b
array([[14, 13, 12, 11],

[10, 9, 8, 7],

[ 6, 5, 4, 3]])

a.min(axis=0)

a對應axis=0這一行的最小值

b.

min(axis=

0)

array([6, 5, 4, 3])
b對應axis=0的最小值為每一列的最小值

b.

min(axis=

1)

array([11,  7,  3])
b對應axis=1的最小值為每行的最小值

就是一句話:

axis等於幾, 就從陣列的第幾個下標變化的方向移動(從零開始計數)

下面有兩張圖,一看便知:

圖一是求a.min(axis=0), 我們可以看到, numpy沿著行變列不變的方向移動,最終求出了陣列每一列的最小值

圖二是求a.min(axis=1), 我們可以看到, numpy沿著列變行不變的方向移動,最終求出了陣列每一行的最小值

關於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 沿著縱...

numpy中sum 中axis引數的問題

在選定特定的軸後,sum得到的值維度降低一維 axis的值是shape返回元組的索引,比如axis 0 是 最高維度 最外層括號 axis 1 是第二層括號 axis n是最內層括號 axis 1 sum axis n 表示以第n維為主元 以二陣列為例 a np.array 1,2,3,4 5,6,...

理解numpy中的axis

對於m個元素一維陣列a,因為只有乙個軸,所以axis只能為0,和預設值效果相同,觀察的是0軸上0,1,i,m點對應的元素。產生的新集合就乙個元素。舉例 對於mxn的二維陣列 a,axis可以取值0或1。axis 0 相當於平面座標的y軸,變化的是 行 即觀察每一列不同行的元素。產生的新集合,其元素的...