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实现html转ubb代码(html2ubb)
Jul 03 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
Python3 操作符重载方法示例
Nov 23 Python
Python数据结构之哈夫曼树定义与使用方法示例
Apr 22 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
Python编程中flask的简介与简单使用
Dec 28 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
python生成requirements.txt的两种方法
Sep 18 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
PHP4和PHP5共存于一系统
2006/11/17 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
js中prototype用法详细介绍
2013/11/14 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
jquery使用经验小结
2015/05/20 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python传递参数方式小结
2015/04/17 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Django Rest framework权限的详细用法
2019/07/25 Python
python脚本第一行如何写
2020/08/30 Python
用python对oracle进行简单性能测试
2020/12/05 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
卫校护理专业毕业生求职信
2013/11/26 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
员工手册董事长致辞
2015/07/29 职场文书
食堂管理制度范本
2015/08/04 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Django实现聊天机器人
2021/05/31 Python
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
Pygame Event事件模块的详细示例
2021/11/17 Python
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android