對(duì)python 矩陣轉(zhuǎn)置transpose的實(shí)例講解
在讀圖片時(shí),會(huì)用到這么的一段代碼:
image_vector_len = np.prod(image_size)#總元素大小,3*55*47
img = Image.open(path)
arr_img = np.asarray(img, dtype='float64')
arr_img = arr_img.transpose(2,0,1).reshape((image_vector_len, ))# 47行,55列,每個(gè)點(diǎn)有3個(gè)元素rgb。再把這些元素一字排開(kāi)
transpose是什么意識(shí)呢? 看如下例子:
arr1 = array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
這是原來(lái)的矩陣。如果對(duì)其進(jìn)行轉(zhuǎn)置,執(zhí)行arr2 = arr1.transpose((1,0,2))
得到:
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
過(guò)程是怎樣的?
arr1.shape 應(yīng)該是(2, 2, 4) 意為 2維,2*4矩陣
arr1.transpose(*args) 里面的參數(shù),可以這么理解,他是調(diào)換arr1.shape的順序,咱來(lái)給arr1.shape標(biāo)一下角標(biāo)哈,(2[0], 2[1], 4[2]) [ ] 里是shape的索引,對(duì)吧,
transpose((1, 0, 2)) 的意思是 按照這個(gè)順序 重新設(shè)置shape 也就是 (2[1], 2[0], 4[2])
雖然看起來(lái) 變換前后的shape都是 2,2,4 , 但是問(wèn)題來(lái)了,transpose是轉(zhuǎn)置
shape按照(1,0,2)的順序重新設(shè)置了, array里的所有元素 也要按照這個(gè)規(guī)則重新組成新矩陣
比如 8 在arr1中的索引是 (1, 0, 0) 那么按照剛才的變換規(guī)則,就是 (0, 1, 0) 看看跟你結(jié)果arr2的位置一樣了吧,依此類(lèi)推..
另外一個(gè)知識(shí)點(diǎn):
對(duì)于一維的shape,轉(zhuǎn)置是不起作用的,舉例:
x=linspace(0,4,5) #array([0.,1.,2.,3.,4.]) y=transpose(x) # 會(huì)轉(zhuǎn)置失敗。
如果想正確使用的話:
x.shape=(5,1) y=transpose(x) #就可以了
以上這篇對(duì)python 矩陣轉(zhuǎn)置transpose的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
django序列化時(shí)使用外鍵的真實(shí)值操作
這篇文章主要介紹了django序列化時(shí)使用外鍵的真實(shí)值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Python?where函數(shù)保姆級(jí)使用教程
本文主要和大家介紹了詳解Python中where()函數(shù)的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參,希望能幫助到大家2022-06-06
Python使用xlrd模塊實(shí)現(xiàn)操作Excel讀寫(xiě)的方法匯總
本文介紹Python中使用xlrd、xlwt、xlutils模塊操作Excel文件的方法,xlrd用于讀取Excel文件,但2.0.0版本后不支持.xlsx格式,xlwt用于創(chuàng)建和寫(xiě)入Excel文件,而xlutils主要用于復(fù)制和處理Excel文件,詳細(xì)介紹了如何打開(kāi)文件、獲取工作表信息、操作行列數(shù)據(jù)和處理日期格式數(shù)據(jù)2024-10-10
python中Task封裝協(xié)程的知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家總結(jié)的是一篇關(guān)于python中Task封裝協(xié)程的知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-07-07
Pytorch中使用ImageFolder讀取數(shù)據(jù)集時(shí)忽略特定文件
這篇文章主要介紹了Pytorch中使用ImageFolder讀取數(shù)據(jù)集時(shí)忽略特定文件,具有一的參考價(jià)值需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-03-03
matplotlib 使用 plt.savefig() 輸出圖片去除旁邊的空白區(qū)域
這篇文章主要介紹了matplotlib 使用 plt.savefig() 輸出圖片去除旁邊的空白區(qū)域,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Django中實(shí)現(xiàn)一個(gè)高性能計(jì)數(shù)器(Counter)實(shí)例
這篇文章主要介紹了Django中實(shí)現(xiàn)一個(gè)高性能計(jì)數(shù)器(Counter)實(shí)例,分解成一步一步去講解,并配有例子,需要的朋友可以參考下2014-07-07

