Python numpy數(shù)組轉(zhuǎn)置與軸變換
這篇文章主要介紹了Python numpy數(shù)組轉(zhuǎn)置與軸變換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
矩陣的轉(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)麻煩,不好理解。但是如果簡(jiǎn)單化就好了,加入用P(x,y,z)來(lái)表示矩陣中的每一個(gè)點(diǎn),那么在numpy中,這個(gè)x,y,z就分別對(duì)應(yīng)0,1,2
2.舉個(gè)例子比如原來(lái)數(shù)組中0這個(gè)元素,它原來(lái)的坐標(biāo)是(0,0,0),那么transpose(1,0,2)對(duì)于這個(gè)點(diǎn)來(lái)說(shuō)就是把x,y坐標(biāo)互換,而z坐標(biāo)不變,則其在新的矩陣中坐標(biāo)依舊是(0,0,0)不變
3.舉個(gè)另外點(diǎn)的例子比如4這個(gè)點(diǎn),其坐標(biāo)是(0,1,1),那么它的x和y坐標(biāo)交換之后是(1,0,1),所以它在新的矩陣中位置是(1,0,1)
4.事實(shí)上transpose函數(shù)正是對(duì)原來(lái)矩陣中每個(gè)點(diǎn)做這個(gè)變換,最后得到新的矩陣
兩軸交換
交換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]]])
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用python實(shí)現(xiàn)冒泡排序算法實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python爬蟲(chóng)lxml庫(kù)處理XML和HTML文檔
在當(dāng)今信息爆炸的時(shí)代,網(wǎng)絡(luò)上的數(shù)據(jù)量龐大而繁雜,為了高效地從網(wǎng)頁(yè)中提取信息,Python爬蟲(chóng)工程師們需要強(qiáng)大而靈活的工具,其中,lxml庫(kù)憑借其卓越的性能和豐富的功能成為Python爬蟲(chóng)領(lǐng)域的不可或缺的工具之一,本文將深入介紹lxml庫(kù)的各個(gè)方面,充分掌握這個(gè)強(qiáng)大的爬蟲(chóng)利器2023-12-12python 定時(shí)修改數(shù)據(jù)庫(kù)的示例代碼
這篇文章主要介紹了python 定時(shí)修改數(shù)據(jù)庫(kù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python中使用語(yǔ)句導(dǎo)入模塊或包的機(jī)制研究
這篇文章主要介紹了Python中使用語(yǔ)句導(dǎo)入模塊或包的機(jī)制研究,同時(shí)對(duì)比了幾種導(dǎo)入包或模塊的語(yǔ)句并簡(jiǎn)要說(shuō)明了這幾種方法之間的幾點(diǎn)優(yōu)劣,需要的朋友可以參考下2015-03-03淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法
這篇文章主要介紹了淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法,pickle模塊可以對(duì)多種Python對(duì)象進(jìn)行序列化和反序列化,序列化稱(chēng)為pickling,反序列化稱(chēng)為unpickling,需要的朋友可以參考下2023-07-07Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
這篇文章主要介紹了Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解,需要的朋友可以參考下2020-02-02