h5py是Python语言用来操作HDF5的模块。下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/latest/quick.html 。该翻译仅为个人学习h5py为目的,如有翻译不当之处,请速联系笔者或提供正确的翻译,非常感谢!
一个HDF5文件就是一个容器,用于储存两类对象:datasets,类似于数组的数据集合;groups,类似于文件夹的容器,可以储存datasets和其它groups。当使用h5py时,最基本的准则为:
groups类似于字典(dictionaries),dataset类似于Numpy中的数组(arrays)。
假设有人给你发送了一个HDF5文件, mytestfile.hdf5(如何创建这个文件,请参考:附录:创建一个文件).首先你需要做的就是打开这个文件用于读取数据:
>>> import h5py
>>> f = h5py.File('mytestfile.hdf5', 'r')
该文件的对象是你的出发点。此文件中存储了什么?记住h5py.File行为就像Python字典一样,因此我们可以检查键,
list(f.keys())
['mydataset']
根据我们的观察,mydataset文件中只有一个数据集。让我们将数据集作为数据集对象进行检查
dset = f['mydataset']
我们获得的对象不是数组,而是HDF5数据集。像NumPy数组一样,数据集既具有形状又具有数据类型:
dset.shape
(100,)
dset.dtype
dtype('int32')
它们还支持数组样式切片。这是您从文件中的数据集中读取和写入数据的方式:
>>> dset[...] = np.arange(100)
>>> dset[0]
0
>>> dset[10]
10
>>> dset[0:100:10]
array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])
附录:创建一个文件
**
此时,您可能想知道如何mytestdata.hdf5创建。我们可以通过在初始化File对象时将设置为mode来创建文件w。其他一些模式是a (用于读/写/创建访问)和 r+(用于读/写访问)。文件访问模式及其含义的完整列表在File Objects中。
>>> import h5py
>>> import numpy as np
>>> f = h5py.File("mytestfile.hdf5", "w")