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 進行transpose(0, 1, 2) 操作之后得到一個新的數(shù)組arr0_1_2,arr0_1_2 的 shape 與 arr 的 shape一致;而對原數(shù)組 arr 進行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第三方插件實現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法
這篇文章主要介紹了基于Python第三方插件實現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Django文件存儲 默認(rèn)存儲系統(tǒng)解析
這篇文章主要介紹了Django文件存儲 默認(rèn)存儲系統(tǒng)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
Python實戰(zhàn)之用tkinter庫做一個鼠標(biāo)模擬點擊器
這篇文章主要介紹了Python實戰(zhàn)之用tkinter庫做一個鼠標(biāo)模擬點擊器,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
Python實現(xiàn)將一個帶鍵值特征的JSON數(shù)組轉(zhuǎn)換為JSON對象
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)將一個帶鍵值特征的JSON數(shù)組轉(zhuǎn)換為JSON對象,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-11-11
Python3實現(xiàn)從排序數(shù)組中刪除重復(fù)項算法分析
這篇文章主要介紹了Python3實現(xiàn)從排序數(shù)組中刪除重復(fù)項算法,結(jié)合3個完整實例形式分析了Python3針對排序數(shù)組的遍歷、去重、長度計算等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
Python中isinstance()函數(shù)原理解釋及詳細(xì)用法示例
isinstance()是Python內(nèi)置的一個非常有用的函數(shù),用于檢查一個對象是否屬于指定的類型或類型元組中的某一個類型,它是Python類型檢查的核心工具之一,比傳統(tǒng)的type()函數(shù)更加靈活和安全,本文給大家介紹Python中isinstance()函數(shù)原理解釋及詳細(xì)用法,感興趣的朋友一起看看吧2025-09-09

