Python-numpy包中多維數組轉置,transpose.swapaxes的軸編號(axis)的理解


transpose()中三個軸編號的位置變化理解

transpose(a,b,c)其中a軸編號即為參考編號,垂直於a的平面即為所有平面,該平面上的數據再根據b,c相對於(0,1,2)的位置關系進行改變,下面以實例舉例說明

A.transpose(0,1,2)對應的就是arr數組原形

In [8]: arr.transpose(0,1,2)
Out[8]:
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]]])

B.transpose(0,2,1),即以0為參考編號,數組0-1和0-2即為所求平面數組,但是2,1相對於(0,1,2)后面的軸編號進行了交換,所以數組0-1/0-2要以對角線進行.T轉置(與二維數組的轉置一樣),所以結果如下。其余同理。

In [9]: arr.transpose(0,2,1)
Out[9]:
array([[[ 0,  4,  8],
        [ 1,  5,  9],
        [ 2,  6, 10],
        [ 3,  7, 11]],

       [[12, 16, 20],
        [13, 17, 21],
        [14, 18, 22],
        [15, 19, 23]]])

C.以transpose(2,1,0)來驗證以上操作。2為視角,數組2-1/2-2/2-3/2-4即為所求平面,再以1為視角,數組1-1/1-2即為所求平面,2-1與1-1兩個平面的交線是[0,12]

In [10]: arr.transpose(2,1,0)
Out[10]:
array([[[ 0, 12],
        [ 4, 16],
        [ 8, 20]],

       [[ 1, 13],
        [ 5, 17],
        [ 9, 21]],

       [[ 2, 14],
        [ 6, 18],
        [10, 22]],

       [[ 3, 15],
        [ 7, 19],
        [11, 23]]])

參考:https://www.cnblogs.com/sunshinewang/p/6893503.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM