numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法
如下所示:
import numpy as np
三維數(shù)組
arr1 = np.arange(16).reshape((2, 2, 4)) #[[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]] arr2=arr1.transpose((1,0,2)) #[[[ 0 1 2 3] # [ 8 9 10 11]] # # [[ 4 5 6 7] # [12 13 14 15]]]
正序?yàn)椋?,1,2),數(shù)組為
#[[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]]
為什么進(jìn)過(guò)tanspose(1,0,2),數(shù)組變?yōu)?/p>
#[[[ 0 1 2 3] # [ 8 9 10 11]] # # [[ 4 5 6 7] # [12 13 14 15]]]
仔細(xì)觀察之后,可以看到轉(zhuǎn)置后的數(shù)組和轉(zhuǎn)置前的數(shù)組的區(qū)別就是第一頁(yè)的第二行和第二頁(yè)的第一行對(duì)換了,可是為什么?
當(dāng)我用arr1[0,1,0],索引值為4
當(dāng)我用arr2[1,0,0],索引值為4
對(duì)比索引參數(shù)表的變化和正序和轉(zhuǎn)置序的不同似乎存在某種聯(lián)系
對(duì)于arr1數(shù)組,索引參數(shù)表[0,0,x]可以表示第一頁(yè)的第一行,當(dāng)前兩個(gè)參數(shù)對(duì)換之后,同一個(gè)元素的索引參數(shù)表并沒(méi)有變化
故arr2的第一頁(yè)第一行和arr1的第一頁(yè)第一行相同
對(duì)于arr1數(shù)組,索引參數(shù)表[0,1,x]可以表示第一頁(yè)第二行,當(dāng)前兩個(gè)參數(shù)對(duì)換之后,同一個(gè)元素的索引值比如[0,1,0]變?yōu)閇1,0,0],
這就是解釋了索引值4的索引參數(shù)表的不同
大概就是這個(gè)思路所以transpose(1,0,2),數(shù)組的第一頁(yè)第二行和第二頁(yè)第一行對(duì)換
后面的四種轉(zhuǎn)置方式也大致是這個(gè)思路,仔細(xì)觀察一下,理解起來(lái)應(yīng)該不難
arr3=arr1.transpose((0,2,1)) # [[[ 0 4] # [ 1 5] # [ 2 6] # [ 3 7]] # # [[ 8 12] # [ 9 13] # [10 14] # [11 15]]] arr4=arr1.transpose((2,0,1)) #[[[ 0 4] # [ 8 12]] # # [[ 1 5] # [ 9 13]] # # [[ 2 6] # [10 14]] # # [[ 3 7] # [11 15]]]
這里要注意的是,arr4數(shù)組變成4頁(yè),這是因?yàn)轫?yè)碼和行碼對(duì)換之后,
頁(yè)碼從數(shù)量2,變成了4
而行碼從數(shù)量4,變成了2
arr5=arr1.transpose((2,1,0)) #[[[ 0 8] # [ 4 12]] # # [[ 1 9] # [ 5 13]] # # [[ 2 10] # [ 6 14]] # # [[ 3 11] # [ 7 15]]] arr6=arr1.transpose((1,2,0)) #[[[ 0 8] # [ 1 9] # [ 2 10] # [ 3 11]] # # [[ 4 12] # [ 5 13] # [ 6 14] # [ 7 15]]]
另外,轉(zhuǎn)置(2,0,1)可以看成,先轉(zhuǎn)置(0,2,1)再轉(zhuǎn)置(1,0,2)
轉(zhuǎn)置(2,1,0)可以看成,先轉(zhuǎn)置(1,0,2),然后轉(zhuǎn)置(0,2,1),最后轉(zhuǎn)置(1,0,2)
轉(zhuǎn)置(1,2,0)可以看成,先轉(zhuǎn)置(1,0,2),在轉(zhuǎn)置(0,2,1)
代碼可以寫成
arr4=arr1.transpose(0,2,1).transpose(1,0,2)
#[[[ 0 4] # [ 8 12]] # # [[ 1 5] # [ 9 13]] # # [[ 2 6] # [10 14]] # # [[ 3 7] # [11 15]]]
結(jié)果一樣!
以上這篇numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- ndarray的轉(zhuǎn)置(numpy.transpose()與A.T命令對(duì)比分析)
- Python?numpy.transpose使用詳解
- numpy.transpose()實(shí)現(xiàn)數(shù)組的轉(zhuǎn)置例子
- 對(duì)numpy下的軸交換transpose和swapaxes的示例解讀
- 詳解Numpy數(shù)組轉(zhuǎn)置的三種方法T、transpose、swapaxes
- 對(duì)numpy中的transpose和swapaxes函數(shù)詳解
- Numpy中轉(zhuǎn)置transpose、T和swapaxes的實(shí)例講解
- numpy中的transpose函數(shù)中具體使用方法
相關(guān)文章
YOLOv5部署到web端詳細(xì)過(guò)程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04詳解用Python調(diào)用百度地圖正/逆地理編碼API
這篇文章主要介紹了詳解用Python調(diào)用百度地圖正/逆地理編碼API,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07PyQt5+QtChart實(shí)現(xiàn)柱狀圖的繪制
QChart是一個(gè)QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實(shí)現(xiàn)柱狀圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-12-12Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析
這篇文章主要介紹了Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析,shutil模塊提供了許多關(guān)于文件和文件集合的高級(jí)操作,特別提供了支持文件復(fù)制和刪除的功能,需要的朋友可以參考下2023-09-09Python PyYAML庫(kù)解析YAML文件使用詳解
這篇文章主要為大家介紹了Python PyYAML庫(kù)解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11基于Python創(chuàng)建可定制的HTTP服務(wù)器
這篇文章主要為大家演示一下如何使用?http.server?模塊來(lái)實(shí)現(xiàn)一個(gè)能夠發(fā)布網(wǎng)頁(yè)的應(yīng)用服務(wù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-05-05