Python?numpy.transpose使用詳解
前言
看Python代碼時(shí),碰見 numpy.transpose 用于高維數(shù)組時(shí)挺讓人費(fèi)解,通過一番畫圖分析和代碼驗(yàn)證,發(fā)現(xiàn) transpose 用法還是很簡單的。
注:評論中說的三維坐標(biāo)圖中的 0 1 2 3 標(biāo)反了,已經(jīng)修正,感謝大家提醒(2019.02)。
正文
Numpy 文檔 numpy.transpose 中做了些解釋,transpose 作用是改變序列,下面是一些文檔Examples:
代碼1:
x = np.arange(4).reshape((2,2))
輸出1:
#x 為:
array([[0, 1],
[2, 3]])
代碼2:
import numpy as np x.transpose()
輸出2:
array([[0, 2],
[1, 3]])
對于二維 ndarray,transpose在不指定參數(shù)是默認(rèn)是矩陣轉(zhuǎn)置。如果指定參數(shù),有如下相應(yīng)結(jié)果:
代碼3:
x.transpose((0,1))
輸出3:
# x 沒有變化
array([[0, 1],
[2, 3]])
代碼4:
x.transpose((1,0))
輸出4:
# x 轉(zhuǎn)置了
array([[0, 2],
[1, 3]])
這個(gè)很好理解:
對于x,因?yàn)椋?/p>
代碼5:
x[0][0] == 0 x[0][1] == 1 x[1][0] == 2 x[1][1] == 3
我們不妨設(shè)第一個(gè)方括號(hào)“[]”為 0軸 ,第二個(gè)方括號(hào)為 1軸 ,則x可在 0-1坐標(biāo)系 下表示如下:
代碼6:
因?yàn)?x.transpose((0,1)) 表示按照原坐標(biāo)軸改變序列,也就是保持不變
而 x.transpose((1,0)) 表示交換 ‘0軸’ 和 ‘1軸’,所以就得到如下圖所示結(jié)果:
注意,任何時(shí)候你都要保持清醒,告訴自己第一個(gè)方括號(hào)“[]”為 0軸 ,第二個(gè)方括號(hào)為 1軸
此時(shí),transpose轉(zhuǎn)換關(guān)系就清晰了。
我們來看一個(gè)三維的:
代碼7:
import numpy as np # A是array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) A = np.arange(16) # 將A變換為三維矩陣 A = A.reshape(2,2,4) print(A)
輸出7:
A = array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
我們對上述的A表示成如下三維坐標(biāo)的形式:
所以對于如下的變換都很好理解啦:
代碼8:
A.transpose((0,1,2)) #保持A不變 A.transpose((1,0,2)) #將 0軸 和 1軸 交換
將 0軸 和 1軸 交換:
此時(shí),輸出
代碼9:
A.transpose((1,0,2)) [0][1][2] #根據(jù)上圖這個(gè)結(jié)果應(yīng)該是10
后面不同的參數(shù)以此類推。
到此這篇關(guān)于Python numpy.transpose使用詳解的文章就介紹到這了,更多相關(guān)Python numpy.transpose內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 使用@property對屬性進(jìn)行數(shù)據(jù)規(guī)范性校驗(yàn)的實(shí)現(xiàn)
本文主要介紹了Python 使用@property對屬性進(jìn)行數(shù)據(jù)規(guī)范性校驗(yàn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關(guān)系
這篇文章主要介紹了一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07django框架事務(wù)處理小結(jié)【ORM 事務(wù)及raw sql,customize sql 事務(wù)處理】
這篇文章主要介紹了django框架事務(wù)處理,結(jié)合實(shí)例形式總結(jié)分析了使用ORM 事務(wù)及raw sql,customize sql 事務(wù)處理相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-06-06python實(shí)現(xiàn)定制交互式命令行的方法
這篇文章主要介紹了python實(shí)現(xiàn)定制交互式命令行的方法,需要的朋友可以參考下2014-07-07python3學(xué)習(xí)之Splash的安裝與實(shí)例教程
splash 是一個(gè)python語言編寫的用于配合scrapy解析js的庫,下面這篇文章主要給大家介紹了關(guān)于python3學(xué)習(xí)之Splash的安裝與使用的一些相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07Python編程基礎(chǔ)之構(gòu)造方法和析構(gòu)方法詳解
這篇文章主要為大家詳細(xì)介紹了Python的構(gòu)造方法和析構(gòu)方法,使用Python編程基礎(chǔ),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Python的反射函數(shù)與內(nèi)省工具深入解析
這篇文章主要為大家介紹了Python的反射函數(shù)與內(nèi)省工具深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06python3 中文亂碼與默認(rèn)編碼格式設(shè)定方法
今天小編就為大家分享一篇python3 中文亂碼與默認(rèn)編碼格式設(shè)定方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10