Python numpy陣列轉置與軸變換
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了Python numpy陣列轉置與軸變換,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
矩陣的轉置
>>> import numpy as np >>> arr=np.arange(15).reshape((3,5)) >>> arr array([[ 0,1,2,3,4],[ 5,6,7,8,9],[10,11,12,13,14]]) >>> arr.T array([[ 0,5,10],[ 1,11],[ 2,12],[ 3,13],[ 4,9,14]])
矩陣的內積
>>> import numpy as np >>> arr=np.arange(15).reshape((3,14]]) >>> np.dot(arr.T,arr) array([[125,140,155,170,185],[140,158,176,194,212],[155,197,218,239],[170,242,266],[185,212,239,266,293]])
軸變換
二維軸變換
1.兩軸交換
>>> import numpy as np >>> arr=np.arange(15).reshape((3,14]]) >>> arr.transpose(1,0)#1軸和0軸進行交換 array([[ 0,14]])
三維軸變換
>>> arr = np.arange(16).reshape((2,4)) >>> arr array([[[ 0,3],7]],[[ 8,10,[12,14,15]]]) >>> arr.transpose((1,2)) array([[[ 0,[ 8,11]],[[ 4,7],15]]])
1.這種變化有點麻煩,不好理解。但是如果簡單化就好了,加入用P(x,y,z)來表示矩陣中的每一個點,那麼在numpy中,這個x,z就分別對應0,2
2.舉個例子比如原來陣列中0這個元素,它原來的座標是(0,0),那麼transpose(1,2)對於這個點來說就是把x,y座標互換,而z座標不變,則其在新的矩陣中座標依舊是(0,0)不變
3.舉個另外點的例子比如4這個點,其座標是(0,1),那麼它的x和y座標交換之後是(1,所以它在新的矩陣中位置是(1,1)
4.事實上transpose函式正是對原來矩陣中每個點做這個變換,最後得到新的矩陣
兩軸交換
交換1軸和2軸
>>> arr array([[[ 0,15]]]) >>> arr.swapaxes(1,2) array([[[ 0,5],6],[ 9,14],[11,15]]]) >>> arr array([[[ 0,15]]])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。