1.HDF5简介
1.1 定义
层次性数据格式第五版(Hierarchical Data Format Version 5, HDF5)是一种存储相同类型数值的大数组的机制,适用于可被层次性组织且数据集需要被元数据标记的数据模型。简单地说,就是HDF5可以采用树形结构(像文件夹那样)层次性地组织数据。
python中常用的库为 h5py(import h5py)
1.2 存储对象
HDF5支持两种类型的数据对象:Dataset,Group
Dataset(array-like):可类比numpy的数组。Dataset 是数据元素的均质集合,具有不变的数据类型和(超)矩形形状。与NumPy阵列不同,它们支持多种透明存储功能,例如压缩,错误检测和分块I / O。Dataset 在h5py中由瘦代理类表示,该代理类支持常规的NumPy操作(如切片)以及各种描述性属性:shape,size,dtype。h5py支持大多数NumPy dtype,并使用与Numpy相同的字符代码(例如’f’,‘i8’)和dtype机制。
Group(folder-like):可以类比为字典,有键(key)和值(value)。组是组织HDF5文件的容器机制。从Python的角度来看,它们的操作有点像字典。在这种情况下,==“键”是组成员的名称,“值”是成员本身(组和数据集)对象。==组对象还包含使HDF5有用的大多数机制。File对象充当HDF5根组的双重职责,并充当您进入文件的入口点。文件中所有对象的名称均为文本字符串(str)。这些将在传递给HDF5 C库之前,使用HDF5批准的UTF-8编码进行编码。 还可以使用字节字符串检索对象,这些字符串将原样传递给HDF5。
注:其实大部分存储格式都是类似的,要么存储纯数据(Datasets),要么存储名称加数据(Groups)。