python transpose()處理高維度數(shù)組的軸變換的實現(xiàn)
矩陣的轉(zhuǎn)置操作
我們給出例子,來看看 transpose( ) 函數(shù)是如何應(yīng)用在矩陣轉(zhuǎn)置操作中的。
# numpy.transpose() 轉(zhuǎn)置操作 import numpy as np a = np.arange(12).reshape(3, 4) print('原數(shù)組:\n{},原數(shù)組的尺寸:{}\n'.format(a, a.shape)) print('轉(zhuǎn)置數(shù)組:\n{},轉(zhuǎn)置數(shù)組的尺寸:{}\n'.format(np.transpose(a), np.transpose(a).shape))
打印結(jié)果:
原數(shù)組:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]],原數(shù)組的尺寸:(3, 4)
轉(zhuǎn)置數(shù)組:
[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]],轉(zhuǎn)置數(shù)組的尺寸:(4, 3)
transpose高維度數(shù)組軸變換
transpose() 也可以用于numpy中高維度數(shù)組的軸變換,以三維數(shù)組來舉例:transpose()括號中傳入的參數(shù)通常為0,1,2,可以將0看作0軸,1看作1軸,2看作2軸。 transpose的括號中的參數(shù)代表的就是數(shù)組的維度。transpose(0,1,2) 表示三個維度不發(fā)生交換,還是原來的數(shù)組;transpose(1,0,2) 表示第0維度和第1維度發(fā)生交換。
使用方法 初始化一個 shape 為 (2, 3, 4) 的高維數(shù)組,如下代碼所示:
import numpy as np arr = np.arange(0, 24).reshape(2, 3, 4) print(arr.shape) # shape:(2, 3, 4)
方法1:
arr0_1_2 = arr.transpose(0, 1, 2) arr1_0_2 = arr.transpose(1, 0, 2) print(arr0_1_2.shape) # shape:(2, 3, 4) print(arr1_0_2.shape) # shape:(3, 2, 4)
我們看到,在對原數(shù)組 arr 進(jìn)行transpose(0, 1, 2) 操作之后得到一個新的數(shù)組arr0_1_2,arr0_1_2 的 shape 與 arr 的 shape一致;而對原數(shù)組 arr 進(jìn)行transpose(1, 0, 2) 操作之后得到的數(shù)組arr1_0_2 的 shape 與 arr 的 shape不一致,arr1_0_2的shape為 (3, 2, 4)。
方法2:
# 方法2 arr0_1_2 = np.transpose(arr, (0, 1, 2)) arr1_0_2 = np.transpose(arr, (1, 0, 2)) print(arr0_1_2.shape) # shape:(2, 3, 4) print(arr1_0_2.shape) # shape:(3, 2, 4)
我們把原數(shù)組arr的每一個值打印出來,如下所示。
print('原數(shù)組:\n{},原數(shù)組的尺寸:{}\n'.format(arr, arr.shape)) print('轉(zhuǎn)置數(shù)組:\n{},轉(zhuǎn)置數(shù)組的尺寸:{}\n'.format(arr.transpose(1, 0, 2), arr.transpose(1, 0, 2).shape))
原數(shù)組:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]],原數(shù)組的尺寸:(2, 3, 4)
轉(zhuǎn)置數(shù)組:
[[[ 0 1 2 3]
[12 13 14 15]]
[[ 4 5 6 7]
[16 17 18 19]]
[[ 8 9 10 11]
[20 21 22 23]]],轉(zhuǎn)置數(shù)組的尺寸:(3, 2, 4)
到此這篇關(guān)于python transpose()處理高維度數(shù)組的軸變換的實現(xiàn)的文章就介紹到這了,更多相關(guān)python transpose() 軸變換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何自動獲取目標(biāo)網(wǎng)站最新通知
這篇文章主要介紹了Python如何自動獲取目標(biāo)網(wǎng)站最新通知,本文給大家分享實現(xiàn)思路及示例代碼,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Python中numpy.pad()函數(shù)的使用詳解
這篇文章主要介紹了Python中numpy.pad()函數(shù)的使用詳解,在卷積神經(jīng)網(wǎng)絡(luò)中,為了避免卷積運算導(dǎo)致輸出圖像縮小和圖像邊緣信息丟失,常常采用圖像邊緣填充技術(shù),即在圖像四周邊緣填充0,使得卷積運算后圖像大小不會縮小,同時也不會丟失邊緣和角落的信息,需要的朋友可以參考下2023-10-10python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法
今天小編就為大家分享一篇python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10在python shell中運行python文件的實現(xiàn)
今天小編就為大家分享一篇在python shell中運行python文件的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12pycharm2022.1最新永久激活碼破解補(bǔ)丁一鍵安裝教程免費分享(2022持續(xù)更新)
更新到Pycharm 2022.2.x版,pycharm2022.2最新可用永久激活碼分享(持續(xù)更新),pycharm激活補(bǔ)丁一鍵安裝簡單方便,無需手動修改文件,兼容蘋果MAC,linux,Windows系統(tǒng)2022-07-07