HDF5 简介
文章目錄
- 一、簡介
- 二、HDF5 Files
- 1、文件對象 f 的屬性和方法:
- 2、文件讀寫
- 三、Datasets
- 1、創建數據集:`f.create_dataset() or 字典賦值創建`
- 2、h5py.File.create_dataset 函數的用法
- 四、Group
- 五、參考資料
一、簡介
-
Hierarchical Data Format Version 5, HDF5: 層次性數據格式第五版
- 是一種存儲相同類型數值的大數組的機制,適用于可被層次性組織且數據集需要被元數據標記的數據模型
- 常用的接口模塊為 h5py
-
HDF5 三大要素:
- hdf5 files: 能夠存儲兩類數據對象 dataset 和 group 的容器,其操作類似 python 標準的文件操作;File 實例對象本身就是一個組,以 / 為名,是遍歷文件的入口
- dataset(array-like): 可類比為 Numpy 數組,每個數據集都有一個名字(name)、形狀(shape) 和類型(dtype),支持切片操作
- group(folder-like): 可以類比為 字典,它是一種像文件夾一樣的容器;group 中可以存放 dataset 或者其他的 group,鍵就是組成員的名稱,值就是組成員對象本身(組或者數據集)
-
HDF5 數據可視化工具 HDFView:
- 支持全平臺,可查看數據的細節
- 注意: 打開路徑中不要包含中文
二、HDF5 Files
HDF5 Files work generally like standard python file objects, the File instance we created is itself a group, in this case the root group, named /, so File instance acts like a Python dictionary.
1、文件對象 f 的屬性和方法:
- 屬性:f.name f.filename f.mode
- 方法:
- f.keys(): f[f.keys()[i]].value
- f.values():
- 存入的是 Numpy 數組,取出的是 h5py.Dataset類的實例,這是一個代理對象,它會代理你的請求讀寫磁盤上的 HDF5 數據,對一個 Dataset 對象進行切片操作會返回一個 Numpy 數組。f.values()[0][:] or f[f.keys()[0]][:]
- key 為 dataset 時的屬性
- f.values()[i].name or f[key].name: 以根目錄為起點 eg: u'/data' u'/label'
- f.values()[i].shape or f[key].shape
- f.values()[i].dtype or f[key].dtype
- f.values()[i].value or f[key].value
- f.items()
- f.create_dataset()
- f.create_group()
- 注意:
- py2 中以迭代器的方式取數據為:f.iterkeys()、f.itervalues()、f.iteritems() py3 中不加 iter 即為迭代器方式
- Names of all objects in the file are all text strings (unicode on py2, str on py3)
2、文件讀寫
# 使用 gzip 壓縮,壓縮等級 1 表示壓縮速度最快, 但是壓縮比最差 comp_kwargs = {'compression': 'gzip', 'compression_opts': 1}總結
- 上一篇: C++调用Object-C
- 下一篇: SQL Server 2008更改表“不