欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python操作HDF5文件示例

 更新時(shí)間:2022年06月28日 11:36:10   作者:學(xué)而時(shí)習(xí)之_不亦說(shuō)乎  
這篇文章主要為大家介紹了Python操作HDF5文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

Matlab操作HDF5文件中已經(jīng)詳細(xì)介紹了HDF5文件已經(jīng)利用Matlab對(duì)其進(jìn)行操作的方法。這篇文章總結(jié)一下如何在Python下使用HDF5文件。我們?nèi)匀话凑誐atlab操作HDF5文件的順序進(jìn)行,分別是創(chuàng)建HDF5文件,寫(xiě)入數(shù)據(jù),讀取數(shù)據(jù)。

Python下的HDF5文件依賴(lài)h5py工具包

創(chuàng)建文件和數(shù)據(jù)集

使用`h5py.File()方法創(chuàng)建hdf5文件

h5file = h5py.File(filename,'w')

然后在此基礎(chǔ)上創(chuàng)建數(shù)據(jù)集

X = h5file.create_dataset(shape=(0,args.patch_size,args.patch_size),             #數(shù)據(jù)集的維度
                              maxshape = (None,args.patch_size,args.patch_size),                #數(shù)據(jù)集的允許最大維度 
                              dtype=float,compression='gzip',name='train',                      #數(shù)據(jù)類(lèi)型、是否壓縮,以及數(shù)據(jù)集的名字
                              chunks=(args.chunk_size,args.patch_size,args.patch_size))         #分塊存儲(chǔ),每一分塊的大小

最為關(guān)系的兩個(gè)參數(shù)為shape和maxshape,很顯然我們希望數(shù)據(jù)集的某一個(gè)維度是可以擴(kuò)展的,所以在maxshape中,將希望擴(kuò)展的維度標(biāo)記為None,其他維度和shape參數(shù)里面的一樣。還有一點(diǎn)值得注意的是,使用compression='gzip'以后,整個(gè)數(shù)據(jù)集能夠被極大的壓縮,對(duì)比較大的數(shù)據(jù)集非常又用,并且在數(shù)據(jù)讀寫(xiě)的時(shí)候,不用用戶(hù)顯式的解碼。

寫(xiě)數(shù)據(jù)集

在使用上面的creat_dataset創(chuàng)建了dataset以后,讀寫(xiě)數(shù)據(jù)集就如同讀寫(xiě)numpy數(shù)組一樣方便,比如上面的函數(shù)定義了數(shù)據(jù)集'train',也就是變量X以后,可以下面的方法來(lái)讀寫(xiě):

data = np.zeros((100,args.patch_size,arg))
X[0:100,:,:] = data

在前面創(chuàng)建數(shù)據(jù)集的時(shí)候,我們定義shape = (args.chunk_size,args.patch_size,args.patch_size),如果有更多的數(shù)據(jù),怎么辦呢?

可以使用resize方法來(lái)擴(kuò)展在maxshape中定義為None的那個(gè)維度:

X.resize(X.shape[0]+args.chunk_size,axis=0)

因?yàn)槲覀冊(cè)趍axshape=(None,args.patch_size,args.patch_size)中將第零個(gè)維度定義為可擴(kuò)展,所以,首先我們用X.shape[0]來(lái)找到該維度的長(zhǎng)度,并將其擴(kuò)展。該維度擴(kuò)展以后,就可以繼續(xù)向里面寫(xiě)入數(shù)據(jù)了。

讀數(shù)據(jù)集

讀取h5文件的方法也非常簡(jiǎn)單,首先利用h5py.File方法打開(kāi)對(duì)應(yīng)的h5文件,然后將里面的某個(gè)數(shù)據(jù)集取出至變量,對(duì)這個(gè)變量的讀取就如同numpy一樣了。

h = h5py.File(hd5file,'r')
train = h['train']
train[1]
train[2]
...

但是上面的讀取方法存在一個(gè)問(wèn)題就是每一次使用的時(shí)候(train[1],train[2])都需要從硬盤(pán)讀取數(shù)據(jù),這將會(huì)導(dǎo)致讀取的速度比較慢。一個(gè)比較好的方法是,每次從硬盤(pán)讀取一個(gè)chunk_size的數(shù)據(jù),然后將這些數(shù)據(jù)存儲(chǔ)到內(nèi)存中,在需要的時(shí)候從內(nèi)存中讀取,比如使用下面的方法:

h = h5py.File(hd5file,'r')
train = h['train']
X = train[0:100]         #一次從硬盤(pán)中讀取比較多的數(shù)據(jù),X將存儲(chǔ)在內(nèi)存中
X[1]                     #從內(nèi)存中讀取
X[2]                     #從內(nèi)存中讀取

這樣的方法就會(huì)快很多。

以上就是Python操作HDF5文件示例的詳細(xì)內(nèi)容,更多關(guān)于Python操作HDF5文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python中import cv2遇到的錯(cuò)誤及安裝方式

    python中import cv2遇到的錯(cuò)誤及安裝方式

    這篇文章主要介紹了python中import cv2遇到的錯(cuò)誤及安裝方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python Pillow.Image 圖像保存和參數(shù)選擇方式

    Python Pillow.Image 圖像保存和參數(shù)選擇方式

    今天小編就為大家分享一篇Python Pillow.Image 圖像保存和參數(shù)選擇方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • pycharm遠(yuǎn)程開(kāi)發(fā)項(xiàng)目的實(shí)現(xiàn)步驟

    pycharm遠(yuǎn)程開(kāi)發(fā)項(xiàng)目的實(shí)現(xiàn)步驟

    這篇文章主要介紹了pycharm遠(yuǎn)程開(kāi)發(fā)項(xiàng)目的實(shí)現(xiàn)步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 記錄一下scrapy中settings的一些配置小結(jié)

    記錄一下scrapy中settings的一些配置小結(jié)

    這篇文章主要介紹了記錄一下scrapy中settings的一些配置小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python實(shí)現(xiàn)的選擇排序算法原理與用法實(shí)例分析

    Python實(shí)現(xiàn)的選擇排序算法原理與用法實(shí)例分析

    這篇文章主要介紹了Python實(shí)現(xiàn)的選擇排序算法,簡(jiǎn)單描述了選擇排序的原理,并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與應(yīng)用選擇排序的具體操作技巧,需要的朋友可以參考下
    2017-11-11
  • django使用LDAP驗(yàn)證的方法示例

    django使用LDAP驗(yàn)證的方法示例

    這篇文章主要介紹了django使用LDAP驗(yàn)證的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 用python刪除文件夾中的重復(fù)圖片(圖片去重)

    用python刪除文件夾中的重復(fù)圖片(圖片去重)

    近期在整理相冊(cè)的時(shí)候,發(fā)現(xiàn)相冊(cè)中有許多重復(fù)圖片,人工一張張篩查刪除太枯燥,便寫(xiě)下這個(gè)python腳本,用于刪除文件夾下重復(fù)的圖片
    2021-05-05
  • Python?UnicodedecodeError編碼問(wèn)題解決方法匯總

    Python?UnicodedecodeError編碼問(wèn)題解決方法匯總

    本文主要介紹了Python?UnicodedecodeError編碼問(wèn)題解決方法匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python判斷字符串是否純數(shù)字的方法

    python判斷字符串是否純數(shù)字的方法

    這篇文章主要介紹了python判斷字符串是否純數(shù)字的方法,通過(guò)isdigit方法進(jìn)行判斷,并給出了改進(jìn)的實(shí)例及采用正則判斷的用法,具有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • Python順序結(jié)構(gòu)語(yǔ)句詳解

    Python順序結(jié)構(gòu)語(yǔ)句詳解

    這篇文章主要為大家介紹了Python順序結(jié)構(gòu)語(yǔ)句,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01

最新評(píng)論