python3 hdf5文件 遍历代码


Posted in Python onMay 19, 2021

看代码吧~

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:类似数组的数据集合; gropp;类似目录的容器,其中可以包含一个或多个 dataset 及其它的 group。

一个 HDF5 文件从一个命名为 "/" 的 group 开始,所有的 dataset 和其它 group 都包含在此 group 下,当操作 HDF5 文件时,如果没有显式指定 group 的 dataset 都是默认指 "/" 下的 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 相关文章推荐
Python创建xml的方法
Mar 10 Python
python简单判断序列是否为空的方法
Jun 30 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
python检索特定内容的文本文件实例
Jun 05 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
Python中logging实例讲解
Jan 17 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python+django+rest框架配置创建方法
Aug 31 Python
使用python绘制温度变化雷达图
Oct 18 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
python画条形图的具体代码
Apr 20 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
PHP编码规范-php coding standard
2007/03/16 PHP
php计算整个目录大小的方法
2015/06/19 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
php验证码生成器
2017/05/24 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
python梯度下降法的简单示例
2018/08/31 Python
Python3数字求和的实例
2019/02/19 Python
python数值基础知识浅析
2019/11/19 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
python实现代码审查自动回复消息
2021/02/01 Python
python 制作本地应用搜索工具
2021/02/27 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
教育实习生的自我评价分享
2013/11/21 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
班长竞选演讲稿
2014/04/24 职场文书
2014年残联工作总结
2014/11/21 职场文书
会议欢迎词范文
2015/01/27 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
2016猴年春节问候语
2015/11/11 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
服务器间如何实现文件共享
2022/05/20 Servers