numpy 軸的理解

2021-10-04 19:16:13 字數 2665 閱讀 2644

在numpy中關於axis的軸有時會有點暈,這裡做下總結

如果axis=0,表示0軸,第乙個維度

axis=1,表示1軸,第二個維度

有點抽象

本地使用jupyter,設沒注釋的為**輸入,注釋部分為輸出

二維

import numpy as np

a = np.array([[

1,2,

3],[

4,5,

6]])

a# array([[1, 2, 3],

# [4, 5, 6]])

a.shape

# (2, 3)

# 表示第一維維度為2,第二維維度維3

a.sum()

# 21

a.sum

(axis=0)

# array([5, 7, 9]) shape為(3,)

a.sum

(axis=

0, keepdims=

true

)# 加上keepdims後保持原有部分維度

# array([[5, 7, 9]]) shape為(1,3)

a.sum

(axis=1)

# array([ 6, 15]) shape為(2,)

a.sum

(axis=

1, keepdims=

true

)# array([[ 6],

# [15]]) shape為(2,1)

三維

b = np.array([[

[1,2

,3],

[4,5

,6]]

,[[7

,8,9

],[10

,11,12

]]])

b# array([[[ 1, 2, 3],

# [ 4, 5, 6]],

## [[ 7, 8, 9],

# [10, 11, 12]]])

b.shape

# (2, 2, 3)

# 第一維維度為2,第二維維度為2,第三維維度為3

b.sum

(axis=0)

# array([[ 8, 10, 12],

# [14, 16, 18]])

b.sum

(axis=1)

# array([[ 5, 7, 9],

# [17, 19, 21]])

b.sum

(axis=1)

# array([[ 6, 15],

# [24, 33]])

b.sum

(axis=(0

,1))

# array([22, 26, 30])

按照二維時的思路

看公式還是有點抽象,畫個圖吧

axis=0,相當於是將0軸方向上的進行求和

在三維情況下也是符合的(大於三維畫不出來)

畫了圖後清晰的了解了軸,然後取argmax也更清楚

a = np.array([[

1,5,

3],[

4,2,

6]])

a# array([[1, 5, 3],

# [4, 2, 6]])

a.shape

# (2, 3)

np.argmax(a)

# 5np.argmax(a, axis=0)

# 在0軸方向上找最大值的下標

# array([1, 0, 1], dtype=int64)

np.argmax(a, axis=1)

# array([1, 2], dtype=int64)

b = np.array([[

[1,5

,8],

[4,11

,6]]

,[[7

,3,10

],[9

,2,12

]]])

b# array([[[ 1, 5, 8],

# [ 4, 11, 6]],

# [[ 7, 3, 10],

# [ 9, 2, 12]]])

np.argmax(b)

# 11

np.argmax(b, axis=0)

# array([[1, 0, 1],

# [1, 0, 1]], dtype=int64)

np.argmax(b, axis=1)

# array([[1, 1, 0],

# [1, 0, 1]], dtype=int64)

np.argmax(b, axis=2)

# array([[2, 1],

# [2, 2]], dtype=int64)

numpy中的axis(軸的理解)

沿著axis指定的軸進行相應的函式操作。如果不知道axis,則把結構體展開成一維,然後再開始計算 import numpy as np print array x x 1,2,3 5,1,2 x np.array x print x print shape x print x.shape print...

numpy 維度與軸

albert chen albert chen 的個人部落格 發表於 2016 09 01 分類於程式語言 我知道 numpy 是多維陣列,但是一直不理解其軸 axis 的概念,以及基於軸之上的計算。今天寫了些例項終於理解了。首先是維度,對人來說高維空間是很難想象的,但是我們可以從純數學的角度來看。...

numpy 維度與軸的問題

x np.reshape np.arange 24 2,3,4 也即 2 行 3 列的 4 個平面 plane x array 0,1,2,3 4,5,6,7 8,9,10,11 12,13,14,15 16,17,18,19 20,21,22,23 再來分別看每乙個平面的構成 x 0 array ...