numpy array軸的理解

2021-10-07 02:04:24 字數 920 閱讀 7882

最近的學習中,發現可以把軸看成是維度,特地分享給大家,方便理解numpy的陣列運算。

a = np.arange(8).reshape(2,4)
[[0 1 2 3]

[4 5 6 7]]

此時軸0對應(2,4)中的2,軸1對應(2,4)中的4。

用乙個numpy中的函式來檢驗這個想法:numpy.swapaxes 函式用於交換陣列的兩個軸

a = np.arange(8).reshape(2,4)

a = np.swapaxes(a, 1, 0)

print(a)

結果為:

[[0 4]

[1 5]

[2 6]

[3 7]]

理論正確。

a = np.arange(12).reshape(2,2,3)
[[[ 0  1  2]

[ 3  4  5]]

[[ 6  7  8]

[ 9 10 11]]]

軸0,1,2分別對應(2,2,3)中的2,2,3

也就是軸0表示兩個子陣列的方向,軸1表示子陣列行的方向,軸2表示子陣列列的方向

如果繼續用剛剛的函式,將軸0與軸2互換,猜想會得到什麼結果,首先是會變成(3,2,2)的array,然後在第乙個子陣列的三列(0,3),(1,4),(2,5)會變成新陣列的三個子陣列的第一列。第二個子陣列則變為第二列。

a = np.arange(12).reshape(2,2,3)

print(np.swapaxes(a, 2, 0))

[[[ 0  6]

[ 3  9]]

[[ 1  7]

[ 4 10]]

[[ 2  8]

[ 5 11]]]

結果與推測相符合。

numpy array多維度的理解

import numpy as np u1 np.array 0 0 0 0 0 0 0 0 0 0 u2 np.array 0 0 0 0 0 0 0 0 0 0 u5 np.dstack u1,u2 u4 np.hstack u1,u2 u3 np.vstack u1,u2 print u1.s...

numpy 軸的理解

在numpy中關於axis的軸有時會有點暈,這裡做下總結 如果axis 0,表示0軸,第乙個維度 axis 1,表示1軸,第二個維度 有點抽象 本地使用jupyter,設沒注釋的為 輸入,注釋部分為輸出 二維 import numpy as np a np.array 1,2,3 4,5,6 a a...

Pytorch scatter 理解軸的含義

scatter input,dim,index,src 將src中資料根據index中的索引按照dim的方向填進input中。x torch.rand 2,5 x 0.4319 0.6500 0.4080 0.8760 0.2355 0.2609 0.4711 0.8486 0.8573 0.102...