数据存储格式——h5

本文介绍了H5文件的层次结构、数据集和组的概念,展示了Python中pandas对HDF5文件的读写操作,以及处理hdf5文件时可能出现的错误解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、介绍

h5文件简介 - 努力奋斗的阿贝拉 - 博客园 (cnblogs.com)

h5文件是层次格式的第5代版本,用于存储科学数据的一种文件格式和库文件,由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.

H5将文件结构简化成两个主要的对象类型:

1 数据集dataset,就是同一类型数据的多维数组

2 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group

直观的理解,可以参考我们的文件系统,不同的文件存放在不同的目录下:

目录就是hdf5文件中的group,描述了数据集DataSet的分类信息,通过group有效的将多种dataset进行管理和划分

文件就是hdf5文件中的dataset,表示具体的数据

下图就是数据集和组的关系:

h5文件是一种真正的层次结构,文件系统式的数据类型.另外在数据集中还有元数据,即metadata

对于每一个dataset而言,除了数据本身之外,这个数据集还有很多的属性信息.在hdf5中,同时支持存储数据集对应的属性信息,所有的属性信息的集合叫做metaData,下图是h5文件的数据集的构成

 

在pandas中读写hdf文件时,指定的key值指的是hdf文件中的group,

1 read_hdf(path_or_bufkey=Nonemode='r'**kwargs)

当要读取得h5文件中,只包含一个group时,可将key参数省略

2 to_hdf(path_or_bufkey**kwargs)

当写入h5文件时,必须指定写入的组,即key值不能省略

二、h5结构

HDF5 结构
HDF5 文件一般以 .h5 或者 .hdf5 作为后缀名,需要专门的软件才能打开预览文件的内容。HDF5 文件结构中有 2 primary objects: Groups 和 Datasets。

Groups 就类似于文件夹,每个 HDF5 文件其实就是根目录 (root) group '/'。
Datasets 类似于 NumPy 中的数组 array 。
每个 dataset 可以分成两部分: 原始数据 (raw) data values 和 元数据 metadata (a set of data that describes and gives information about other data => raw data)。

+-- Dataset
|   +-- (Raw) Data Values (eg: a 4 x 5 x 6 matrix)
|   +-- Metadata
|   |   +-- Dataspace (eg: Rank = 3, Dimensions = {
    4, 5, 6})
|   |   +-- Datatype (eg: Integer)
|   |   +-- Properties (eg: Chuncked, Compressed)
|   |   +-- Attributes (eg: attr1 = 32.4, attr2 = "hello", ...)
|

从上面的结构中可以看出:

Dataspace 给出原始数据的秩 (Rank) 和维度 (dimension)
Datatype 给出数据类型
Properties 说明该 dataset 的分块储存以及压缩情况
Chunked: Better access time for subsets; extendible
Chunked & Compressed: Improves storage efficiency, transmission speed
Attributes 为该 dataset 的其他自定义属性
 

+-- /
|   +-- group_1
|   |   +-- dataset_1_1
|   |   |   +-- attribute_1_1_1
|   |   |   +-- attribute_1_1_2
|   |   |   +-- ...
|   |   |
|   |   +-- dataset_1_2
|   |   |   +-- attribute_1_2_1
|   |   |   +-- attribute_1_2_2
|   |   |   +-- ...
|   |   |
|   |   +-- ...
|   |
|   +-- group_2
|   |   +-- dataset_2_1
|   |   |   +-- attribute_2_1_1
|   |   |   +-- attribute_2_1_2
|   |   |   +-- ...
|   |   |
|   |   +-- dataset_2_2
|   |   |   +-- attribute_2_2_1
|   |   |   +-- attribute_2_2_2
|   |   |   +-- ...
|   |   |
|   |   +-- ...
|   |
|   +-- ...
|

https://blog.csdn.net/weixin_42298373/article/details/113669014

三、python对h5文件的操作

H5文件简介以及python对h5文件的操作-CSDN博客

四、关于python环境中hdf5报错问题的几种解决办法

python怎么操作可视化hdf5文件 | w3cschool笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值