python中numpy矩陣的零填充的示例代碼
需求:
對(duì)于圖像處理中的一些過(guò)程,我需要對(duì)讀取的numpy矩陣進(jìn)行size的擴(kuò)充,比如原本是(4,6)的矩陣,現(xiàn)在需要上下左右各擴(kuò)充3行,且為了不影響數(shù)值計(jì)算,都用0填充。
比如下圖,我有一個(gè)4x5大小的全1矩陣,但是現(xiàn)在我要在四周都加上3行的0來(lái)擴(kuò)充大小,最后擴(kuò)充完還要對(duì)原區(qū)域進(jìn)行操作。
方法:
想到了幾種方法,記錄一下。
一、再new一個(gè)更大的所需要的矩陣大小
a = np.ones((4,5)) #假設(shè)原矩陣是4x5的全1矩陣 print(a.shape) b_pad = np.zeros((4 + 6, 5 + 6)) #要四周擴(kuò)充3行,所以寬高都要加6 h,w = b.shape print(b.shape) #(10,11) b[3:h-3,3:w-3] = a #再把原矩陣放到相應(yīng)位置 print(b) #如果要對(duì)原數(shù)值一一進(jìn)行操作,可以定位到各元素 for i in range(3,h-3): for j in range(3,w-3): b[i][j] = 2 print(b)
這個(gè)方法簡(jiǎn)單粗暴,邏輯上比較好理解,但是會(huì)消耗內(nèi)存空間
二、pad函數(shù)
其實(shí)numpy已經(jīng)封裝了一個(gè)函數(shù),就是pad
a = np.ones((4,5)) print(a.shape) b = np.pad(a,3,'constant') #對(duì)a,上下左右各擴(kuò)充3行,constant缺省,默認(rèn)為0 print(b) print(b.shape) #如果只要左上角擴(kuò)充的話 c = np.pad(a,(3,0),'constant') print(c) print(c.shape)
其他想法
還有兩種想法,但我沒(méi)實(shí)踐過(guò)。一個(gè)是 二維轉(zhuǎn)成一維,然后用list在每一組的前后可以加0,用append連接,最后再轉(zhuǎn)成二維。這樣子的話,0想放在哪里就可以自己定了。 還有一種是用torch.nn,在pytorch中有對(duì)于卷積的0填充padding。不過(guò)需要把numpy轉(zhuǎn)成tensor張量,最后再轉(zhuǎn)回來(lái),比較麻煩。
到此這篇關(guān)于python中numpy矩陣的零填充的示例代碼的文章就介紹到這了,更多相關(guān)numpy矩陣零填充內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)測(cè)試磁盤性能的方法
這篇文章主要介紹了Python實(shí)現(xiàn)測(cè)試磁盤性能的方法,涉及Python對(duì)硬件的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03python 常見(jiàn)的排序算法實(shí)現(xiàn)匯總
這篇文章主要介紹了python 常見(jiàn)的排序算法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-08-08Django Python 獲取請(qǐng)求頭信息Content-Range的方法
今天小編就為大家分享一篇Django Python 獲取請(qǐng)求頭信息Content-Range的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08教你使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易版Web服務(wù)器
這篇文章主要介紹了教你使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易版Web服務(wù)器,本篇文章將通過(guò)實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的Web服務(wù)器,幫助讀者理解Python網(wǎng)絡(luò)編程的基本概念和技巧,需要的朋友可以參考下2023-04-04pandas 像SQL一樣使用WHERE IN查詢條件說(shuō)明
這篇文章主要介紹了pandas 像SQL一樣使用WHERE IN查詢條件說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06ubuntu在線服務(wù)器python?Package安裝到離線服務(wù)器的過(guò)程
這篇文章主要介紹了ubuntu在線服務(wù)器python?Package安裝到離線服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04教你用Python實(shí)現(xiàn)一個(gè)輪盤抽獎(jiǎng)小游戲
Python提供了許多個(gè)圖像開(kāi)發(fā)界面的庫(kù),比如現(xiàn)在主流的Tkinter,wxPython,pyqt5等,三種各有優(yōu)點(diǎn),也各有缺點(diǎn),下面對(duì)其分別進(jìn)行介紹和對(duì)比,并編寫代碼實(shí)現(xiàn)一個(gè)輪盤轉(zhuǎn)盤抽獎(jiǎng)小游戲.需要的朋友可以參考下2021-05-05Python如何通過(guò)ARIMA模型進(jìn)行時(shí)間序列分析預(yù)測(cè)
這篇文章主要介紹了Python如何通過(guò)ARIMA模型進(jìn)行時(shí)間序列分析預(yù)測(cè)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02