Python numpy數(shù)組轉(zhuǎn)置與軸變換
這篇文章主要介紹了Python numpy數(shù)組轉(zhuǎn)置與軸變換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
矩陣的轉(zhuǎn)置
>>> 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]])
矩陣的內(nèi)積
>>> 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軸進(jìn)行交換 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.這種變化有點(diǎn)麻煩,不好理解。但是如果簡單化就好了,加入用P(x,y,z)來表示矩陣中的每一個點(diǎn),那么在numpy中,這個x,y,z就分別對應(yīng)0,1,2
2.舉個例子比如原來數(shù)組中0這個元素,它原來的坐標(biāo)是(0,0,0),那么transpose(1,0,2)對于這個點(diǎn)來說就是把x,y坐標(biāo)互換,而z坐標(biāo)不變,則其在新的矩陣中坐標(biāo)依舊是(0,0,0)不變
3.舉個另外點(diǎn)的例子比如4這個點(diǎn),其坐標(biāo)是(0,1,1),那么它的x和y坐標(biāo)交換之后是(1,0,1),所以它在新的矩陣中位置是(1,0,1)
4.事實(shí)上transpose函數(shù)正是對原來矩陣中每個點(diǎn)做這個變換,最后得到新的矩陣
兩軸交換
交換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]]])
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用python實(shí)現(xiàn)冒泡排序算法實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python中使用語句導(dǎo)入模塊或包的機(jī)制研究
這篇文章主要介紹了Python中使用語句導(dǎo)入模塊或包的機(jī)制研究,同時對比了幾種導(dǎo)入包或模塊的語句并簡要說明了這幾種方法之間的幾點(diǎn)優(yōu)劣,需要的朋友可以參考下2015-03-03淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法
這篇文章主要介紹了淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法,pickle模塊可以對多種Python對象進(jìn)行序列化和反序列化,序列化稱為pickling,反序列化稱為unpickling,需要的朋友可以參考下2023-07-07Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
這篇文章主要介紹了Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解,需要的朋友可以參考下2020-02-02