python3 hdf5文件 遍歷代碼
看代碼吧~
import h5py import numpy as np f = h5py.File('train/e1_1.hdf5') key = "" for k in f.keys(): key = k d = f[key] print(d) a = np.ones(d.shape) d.read_direct(a) print(a) f.close()
補充:HDF5 文件及Python模塊之h5py
HDF5文件
什么是HDF5文件呢?
先引用一波維基百科的介紹,『層級數(shù)據(jù)格式(Hierarchical Data Format:HDF)是設計用來存儲和組織大量數(shù)據(jù)的一組文件格式(HDF4,HDF5)。
它最初開發(fā)于美國國家超級計算應用中心,現(xiàn)在由非營利社團HDF Group支持,其任務是確保HDF5技術的持續(xù)開發(fā)和存儲在HDF中數(shù)據(jù)的持續(xù)可訪問性?!?。
HDF5 擁有一系列的優(yōu)異特性,使其特別適合進行大量科學數(shù)據(jù)的存儲和操作,如它支持非常多的數(shù)據(jù)類型,靈活,通用,跨平臺,可擴展,高效的 I/O 性能,支持幾乎無限量(高達 EB)的單文件存儲等
如何在Linux中查看hdf5文件呢?
h5ls info.h5 # key1 Dataset {10000} # key2 Dataset {10000,5} # key3 Dataset {20000,30}
h5py模塊
我們可以使用Python非常方便的讀寫hdf5文件,最常用的模塊就是h5py。下面說明一下它的安裝及使用方法:
安裝模塊
pip install h5py pip install numpy # numpy 通常是作為配合使用
對h5py的總結(jié):
『一個 HDF5 文件是存儲兩類對象的容器,這兩類對象分別為:
dataset:類似數(shù)組的數(shù)據(jù)集合; gropp;類似目錄的容器,其中可以包含一個或多個 dataset 及其它的 group。
一個 HDF5 文件從一個命名為 "/" 的 group 開始,所有的 dataset 和其它 group 都包含在此 group 下,當操作 HDF5 文件時,如果沒有顯式指定 group 的 dataset 都是默認指 "/" 下的 dataset,另外類似相對文件路徑的 group 名字都是相對于 "/" 的。
HDF5 文件的 dataset 和 group 都可以擁有描述性的元數(shù)據(jù),稱作 attribute。
用 h5py 操作 HDF5 文件,我們可以像使用目錄一樣使用 group,像使用 numpy 數(shù)組一樣使用 dataset,像使用字典一樣使用屬性,非常方便和易用?!?/p>
寫入hdf5文件
import h5py import numpy as np # 如果你要在根group下創(chuàng)建dataset f = h5py.File('info.h5', 'w') values1 = np.arange(12).reshape(4, 3) values2 = np.arange(20).reshape(4, 5) f.create_dataset(name='key1', data=np.array(values1, dtype='int64')) f.create_dataset(name='key2', data=np.array(values2, dtype='int64')) # 如果你要創(chuàng)建一個group(目錄) # 然后指定dataset放置的group f.create_group('/dir1') f.create_group('/dir1/dir2') data = np.arange(6).reshape(3, 2) f.create_dataset('/dir1/dir2', data=data) # 最后別忘了關閉文件 f.close()
讀取hdf5文件
import h5py with h5py.File(info.h5, 'r') as f: values1 = f['key1'].value values2 = f['key2'].value
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python實現(xiàn)在每個獨立進程中運行一個函數(shù)的方法
這篇文章主要介紹了python實現(xiàn)在每個獨立進程中運行一個函數(shù)的方法,涉及Python操作進程的相關技巧,需要的朋友可以參考下2015-04-04Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法
這篇文章主要介紹了Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法,適用于數(shù)據(jù)較多時,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06如何將Yolov5的detect.py修改為可以直接調(diào)用的函數(shù)詳解
YOLOv4還沒有退熱,YOLOv5已經(jīng)發(fā)布,下面這篇文章主要給大家介紹了關于如何將Yolov5的detect.py修改為可以直接調(diào)用的函數(shù)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04