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 时间处理datetime实例
Sep 06 Python
windows下安装python paramiko模块的代码
Feb 10 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
python自定义解析简单xml格式文件的方法
May 11 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
django加载本地html的方法
May 27 Python
解决python线程卡死的问题
Feb 18 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
python3 pathlib库Path类方法总结
Dec 26 Python
Python调用.NET库的方法步骤
Dec 27 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
python中使用input()函数获取用户输入值方式
May 03 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
python中ConfigParse模块的用法
2014/09/29 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
给Python初学者的一些编程技巧
2015/04/03 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python装饰器代替set get方法实例
2019/12/19 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
奠基仪式主持词
2014/03/20 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
如何写辞职书
2015/02/26 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
休假证明书
2015/06/24 职场文书
销售口号霸气押韵
2015/12/24 职场文书
高一作文之暖冬
2019/11/09 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Python制作春联的示例代码
2022/01/22 Python
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby