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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Python实现UDP程序通信过程图解
May 15 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
python获取淘宝服务器时间的代码示例
Apr 22 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
php无限遍历目录示例
2014/02/21 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
php二维码生成以及下载实现
2017/09/28 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
angularjs实现猜大小功能
2017/10/23 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
详解Python中的正则表达式的用法
2015/04/09 Python
Django 路由控制的实现代码
2018/11/08 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
校园广播稿500字
2014/02/04 职场文书
经典公益广告词
2014/03/13 职场文书
新闻发布会策划方案
2014/06/12 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
爱护公物演讲稿
2014/09/09 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
党员评议思想汇报
2014/10/08 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
我的生日感言
2015/08/03 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
导游词之临安白水涧
2019/11/05 职场文书
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers