簡單瞅瞅 numpy庫transpose函數

寫在前面

接個人上一篇博客, 嘿嘿, 應該能看懂吧,若是numpy數組的維度懂了那就好理解transposepython

代碼說話

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]]])

技巧

給兩個圖本身理解:
image.png
image.png
可能比較難想,技巧的話code

  • 正視,你 要交換的那兩維組成的平面(目光與該平面垂直),接着,將該平面轉置,另外一維度不變
  • array.shape也行,原來是(3, 2, 1),若執行a.transpose(1, 0, 2),則shape(2, 3, 1)
    能夠參考:https://blog.csdn.net/Heartho...
相關文章
相關標籤/搜索