HDF5快速指南
1.核心概念
一个HDF5
文件是一种存放两类对象的容器:dataset
和group
。
Dataset
是类似于数组的数据集Group
是类似文件夹一样的容器,存放dataset
和其他group
。
在使用HDF5
的时候需要牢记一句话:groups
类比词典,dataset
类比Numpy
中的数组。
HDF5
的dataset
虽然与Numpy
的数组在接口上很相近,但是支持更多对外透明的存储特征,如数据压缩,误差检测,分块传输。
2.创建和读取HDF5文件
1)创建HDF5文件
1 | import h5py |
然后我们借助文件对象的一系列方法添加数据。其中create_dataset
用于创建给定形状和数据类型的空dataset
。
1 | dset = f.create_dataset("mydataset", (100,), dtype='i') |
我们也可以用现有的 Numpy 数组来初始化一个 dataset
1 | arr = np.arange(100) |
HDF
代表Hierarchical Data Format
(分层数据格式)。HDF5
文件中group
对象类似于文件夹,我们创建的文件对象本身就是一个group
,称为root group
.
创建subgroup
是使用create_group
的方法实现的。
1 | grp = f.create_group("subgroup") |
2)读取HDF5文件
1 | #HDF5创建 |
3)属性
HDF5的一个很棒的特点是你可以在数据旁边存储元数据。所有的group和dataset都支持叫做属性的数据形式。属性通过attrs成员访问,类似于python中词典格式。
1 | dset.attrs['temperature'] = 99.5 |