Python numpy數組轉置與軸變換
這篇文章主要介紹了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, 6, 11], [ 2, 7, 12], [ 3, 8, 13], [ 4, 9, 14]])
矩陣的內積
>>> 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, 6, 11], [ 2, 7, 12], [ 3, 8, 13], [ 4, 9, 14]]) >>> np.dot(arr.T,arr) array([[125, 140, 155, 170, 185], [140, 158, 176, 194, 212], [155, 176, 197, 218, 239], [170, 194, 218, 242, 266], [185, 212, 239, 266, 293]])
軸變換
二維軸變換
1.兩軸交換
>>> 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.transpose(1,0)#1軸和0軸進行交換 array([[ 0, 5, 10], [ 1, 6, 11], [ 2, 7, 12], [ 3, 8, 13], [ 4, 9, 14]])
三維軸變換
>>> arr = np.arange(16).reshape((2, 2, 4)) >>> arr array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]]) >>> arr.transpose((1,0,2)) array([[[ 0, 1, 2, 3], [ 8, 9, 10, 11]], [[ 4, 5, 6, 7], [12, 13, 14, 15]]])
1.這種變化有點麻煩,不好理解。但是如果簡單化就好了,加入用P(x,y,z)來表示矩陣中的每一個點,那么在numpy中,這個x,y,z就分別對應0,1,2
2.舉個例子比如原來數組中0這個元素,它原來的坐標是(0,0,0),那么transpose(1,0,2)對于這個點來說就是把x,y坐標互換,而z坐標不變,則其在新的矩陣中坐標依舊是(0,0,0)不變
3.舉個另外點的例子比如4這個點,其坐標是(0,1,1),那么它的x和y坐標交換之后是(1,0,1),所以它在新的矩陣中位置是(1,0,1)
4.事實上transpose函數正是對原來矩陣中每個點做這個變換,最后得到新的矩陣
兩軸交換
交換1軸和2軸
>>> arr array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]]) >>> arr.swapaxes(1,2) array([[[ 0, 4], [ 1, 5], [ 2, 6], [ 3, 7]], [[ 8, 12], [ 9, 13], [10, 14], [11, 15]]]) >>> arr array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
淺談Python使用pickle模塊序列化數據優(yōu)化代碼的方法
這篇文章主要介紹了淺談Python使用pickle模塊序列化數據優(yōu)化代碼的方法,pickle模塊可以對多種Python對象進行序列化和反序列化,序列化稱為pickling,反序列化稱為unpickling,需要的朋友可以參考下2023-07-07Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
這篇文章主要介紹了Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解,需要的朋友可以參考下2020-02-02