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检查序列seq是否含有aset中项的方法
Jun 30 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
python添加菜单图文讲解
Jun 04 Python
Python with语句和过程抽取思想
Dec 23 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 03 Python
如何获取numpy array前N个最大值
May 14 Python
变长双向rnn的正确使用姿势教学
May 31 Python
总结Pyinstaller打包的高级用法
Jun 28 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
php下使用无限生命期Session的方法
2007/03/16 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
Python中return self的用法详解
2018/07/27 Python
详解Python 正则表达式模块
2018/11/05 Python
python绘制热力图heatmap
2020/03/23 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
Python实现12306火车票抢票系统
2019/07/04 Python
意大利单身交友网站:Meetic
2020/07/12 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
护士思想汇报
2014/01/12 职场文书
信访工作者先进事迹
2014/01/17 职场文书
培训专员岗位职责
2014/02/26 职场文书
会议主持词
2014/03/17 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
外贸业务员求职信
2014/06/16 职场文书
迎七一演讲稿
2014/09/12 职场文书
大学生逃课检讨书
2015/05/04 职场文书
初中语文教学随笔
2015/08/15 职场文书
python 命令行传参方法总结
2021/05/25 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技