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写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
Python实现CET查分的方法
Mar 10 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
python动态加载包的方法小结
Apr 18 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
浅析matlab中imadjust函数
Feb 27 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
Protoss魔法科技
2020/03/14 星际争霸
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
隐性调用php程序的方法
2009/03/09 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
Javascript 写的简单进度条控件
2008/01/22 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
github配置使用指南
2014/11/18 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
python缩进长度是否统一
2020/08/02 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
大专生自我评价
2014/01/28 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
JavaScript文档对象模型DOM
2021/11/20 Javascript