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中的RSS处理
Apr 13 Python
Python中turtle作图示例
Nov 15 Python
Python实现进程同步和通信的方法
Jan 02 Python
详解python函数传参是传值还是传引用
Jan 16 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
关于Python中定制类的比较运算实例
Dec 19 Python
python 穷举指定长度的密码例子
Apr 02 Python
详解python中的lambda与sorted函数
Sep 04 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 Python
用Python实现屏幕截图详解
Jan 22 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
python连接mysql并提交mysql事务示例
2014/03/05 Python
实例讲解python函数式编程
2014/06/09 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
python写程序统计词频的方法
2019/07/29 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
水务局局长岗位职责
2013/11/28 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
2014年政工师工作总结
2014/12/18 职场文书
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android