什么是HDF5文件呢?先引用一波维基百科的介绍,『层级数据格式(Hierarchical Data Format:HDF)是设计用来存储和组织大量数据的一组文件格式(HDF4,HDF5)。它最初开发于美国国家超级计算应用中心,如今由非营利社团HDF Group支持,其任务是确保HDF5技术的持续开发和存储在HDF中数据的持续可访问性。』。HDF5 拥有一系列的优异特性,使其特别适合进行大量科学数据的存储和操做,如它支持很是多的数据类型,灵活,通用,跨平台,可扩展,高效的 I/O 性能,支持几乎无限量(高达 EB)的单文件存储等python
如何在Linux中查看hdf5文件呢?数组
h5ls info.h5 # key1 Dataset {10000} # key2 Dataset {10000,5} # key3 Dataset {20000,30}
咱们能够使用Python很是方便的读写hdf5文件,最经常使用的模块就是h5py。下面说明一下它的安装及使用方法:bash
安装模块性能
pip install h5py pip install numpy # numpy 一般是做为配合使用
这里引用一个博主对h5py的总结(https://www.jianshu.com/p/de9f33cdfba0):spa
『一个 HDF5 文件是存储两类对象的容器,这两类对象分别为:设计
dataset:相似数组的数据集合; gropp;相似目录的容器,其中能够包含一个或多个 dataset 及其它的 group。code
一个 HDF5 文件从一个命名为 "/" 的 group 开始,全部的 dataset 和其它 group 都包含在此 group 下,当操做 HDF5 文件时,若是没有显式指定 group 的 dataset 都是默认指 "/" 下的 dataset,另外相似相对文件路径的 group 名字都是相对于 "/" 的。orm
HDF5 文件的 dataset 和 group 均可以拥有描述性的元数据,称做 attribute。对象
用 h5py 操做 HDF5 文件,咱们能够像使用目录同样使用 group,像使用 numpy 数组同样使用 dataset,像使用字典同样使用属性,很是方便和易用。』ip
写入hdf5文件
import h5py import numpy as np # 若是你要在根group下建立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')) # 若是你要建立一个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