悠悠楠杉
网站页面
正文:
HDF5(Hierarchical Data Format)是一种高效存储大规模科学数据的文件格式,广泛应用于气象、生物信息、机器学习等领域。Python通过h5py库提供了便捷的HDF5操作接口,本文将带你从零掌握其核心用法。
首先安装h5py库:
pip install h5py以下代码创建一个新文件并写入数据:
import h5py
# 创建文件并写入数据集
with h5py.File("data.h5", "w") as f:
f.create_dataset("temperature", data=[25.3, 26.1, 24.8])
print("文件已创建,数据集写入成功!")HDF5支持多种数据类型(如数值、字符串、数组),读写方式直观:
with h5py.File("data.h5", "r") as f:
temp_data = f["temperature"][:] # 读取全部数据
print("温度数据:", temp_data)with h5py.File("data.h5", "a") as f: # 'a'模式为追加
f.create_dataset("description", data="2023年气候数据")
matrix = f.create_dataset("matrix", shape=(3, 3), dtype='float32')
matrix[:] = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 写入多维数组HDF5支持类似文件夹的分组结构,便于组织复杂数据:
with h5py.File("data.h5", "a") as f:
group = f.create_group("experiment_1")
group.create_dataset("time", data=[0, 5, 10]) # 在分组内写入数据def print_hdf5_structure(name, obj):
if isinstance(obj, h5py.Dataset):
print(f"数据集:{name}")
elif isinstance(obj, h5py.Group):
print(f"分组:{name}")
with h5py.File("data.h5", "r") as f:
f.visititems(print_hdf5_structure)通过compression参数减少文件体积:
with h5py.File("compressed.h5", "w") as f:
f.create_dataset("large_data", shape=(1000, 1000),
dtype='float32', compression="gzip")为数据集或分组添加元数据:
with h5py.File("data.h5", "a") as f:
f["temperature"].attrs["unit"] = "Celsius"
print(f["temperature"].attrs["unit"]) # 输出: Celsius通过h5py的灵活操作,你可以轻松管理海量结构化数据,兼顾效率与可读性。现在,尝试用HDF5优化你的下一个项目吧!