最近的學習中,發現可以把軸看成是維度,特地分享給大家,方便理解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)會變成新陣列的三個子陣列的第一列。第二個子陣列則變為第二列。
[[[ 0 6]a = np.arange(12).reshape(2,2,3)
print(np.swapaxes(a, 2, 0))
[ 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...