接個人上一篇博客, 嘿嘿, 應該能看懂吧,若是numpy數組的維度懂了那就好理解transpose
了python
transpose
就是轉置的意思,函數返回按你指定的方式轉置的矩陣編程
np.transpose(narray, axis=None)
舉個例子感性理解一下:segmentfault
>>> a = np.array([[[1], [2]], [[3], [4]], [[5], [6]]]) array([[[1], [2]], [[3], [4]], [[5], [6]]]) >>> a.transpose(0, 1, 2) # 此處用面向對象編程也能夠 array([[[1], [2]], [[3], [4]], [[5], [6]]]) >>> a.transpose(0, 2, 1) array([[[1, 2]], [[3, 4]], [[5, 6]]])
你可能已經明白了,他按照axis
參數——你給定的順序類進行轉置a.transpose(0, 2, 1)
就是將第二維和第三維轉置
將數組
[[1] [2]]
轉置爲:函數
[[1, 2]]
你可能會爲我爲啥不是:spa
[[1], [2]]
這樣的話,又憑空增長了一個維度,(最後一維應該是常數那一維)
因此,若是是a.transpose(1, 0, 2)
則是:.net
array([[[1], [3], [5]], [[2], [4], [6]]])
給兩個圖本身理解:
可能比較難想,技巧的話code
array.shape
也行,原來是(3, 2, 1)
,若執行a.transpose(1, 0, 2)
,則shape
爲(2, 3, 1)