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怎么学好python?
Oct 07 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
Python变量和字符串详解
Apr 29 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
对Python中type打开文件的方式介绍
Apr 28 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
python必学知识之文件操作(建议收藏)
May 30 Python
Python实现日志实时监测的示例详解
Apr 06 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
php session安全问题分析
2011/06/24 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
javascript中神奇的 Date对象小结
2017/10/12 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python 的类、继承和多态详解
2017/07/16 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
售后专员岗位职责
2013/12/08 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
2014年仓库工作总结
2014/11/20 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
街道社区活动报告
2015/02/05 职场文书
九年级数学教学反思
2016/02/17 职场文书
PHP命令行与定时任务
2021/04/01 PHP
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA
box-shadow单边阴影的实现
2023/05/21 HTML / CSS