Python3使用h5py遍历HDF5文件完整指南

拾光
拾光
发布时间:2026-10-14| 6人浏览过
原创

本文详细介绍如何在Python3中使用h5py模块遍历、读取和写入HDF5文件。涵盖h5py安装、HDF5文件结构(Group与Dataset)、元数据操作及完整代码示例,帮助开发者高效处理大规模科学数据。

以下是具体的代码实现部分。


import h5py
import numpy as np
f = h5py.File('train/e1_1.hdf5')
key = ""
for k in f.keys():
    key = k
d = f[key]
print(d)
a = np.ones(d.shape)
d.read_direct(a)
print(a)
f.close()

补充说明:HDF5文件结构及其在Python中的h5py模块应用。

HDF5文件概述

HDF5文件是什么?

首先引用维基百科的定义:层级数据格式(Hierarchical Data Format,简称HDF)是一组用于存储和组织大量数据的文件格式标准,包括HDF4和HDF5版本。

该格式最初由美国国家超级计算应用中心开发,目前由非营利组织HDF Group维护,致力于确保HDF5技术的持续演进以及存储在HDF格式中数据的长期可访问性。

HDF5具备多项优异特性,使其成为存储和操作大规模科学数据的理想选择。其特点包括支持多种数据类型、灵活性与通用性、跨平台兼容性、可扩展性以及高效的I/O性能,同时支持单文件存储容量高达EB级别。

在Linux系统中如何查看HDF5文件内容?


h5ls info.h5
# key1    Dataset {10000}
# key2    Dataset {10000,5}
# key3    Dataset {20000,30}

h5py模块详解

利用Python可以便捷地读写HDF5文件,其中最常用的库是h5py。下文将详细说明该模块的安装步骤及具体使用方法。

安装模块


pip install h5py
pip install numpy
# numpy 通常是作为配合使用

对h5py功能的总结:

一个HDF5文件本质上是存储两类对象的容器,这两类对象分别为:

Dataset(数据集):类似于数组的数据集合;Group(组):类似于目录的容器,内部可包含一个或多个Dataset及其他Group。

每个HDF5文件都从一个名为“/”的根Group开始,所有的Dataset和其他Group均包含在此根Group之下。在操作HDF5文件时,若未显式指定Group,则默认操作的是“/”下的Dataset;此外,类似相对文件路径的Group名称也是相对于根目录“/”而言的。

HDF5文件中的Dataset和Group均可拥有描述性的元数据,这些元数据被称为Attribute(属性)。

使用h5py操作HDF5文件时,我们可以像操作目录一样操作Group,像操作NumPy数组一样操作Dataset,像操作字典一样操作属性,这种设计使得操作过程非常便捷且易于使用。

写入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

以上内容为个人经验分享,希望能为大家提供参考。也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。