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中asyncore的用法实例
Sep 29 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
python各种语言间时间的转化实现代码
Mar 23 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
django迁移数据库错误问题解决
Jul 29 Python
python实现图像拼接功能
Mar 23 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
查看keras的默认backend实现方式
Jun 19 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
详解torch.Tensor的4种乘法
Sep 03 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
教大家使用Python SqlAlchemy
2016/02/12 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python with (as)语句实例详解
2020/02/04 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python regex库实例用法总结
2021/01/03 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
法人代表委托书
2014/04/04 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
单身证明格式样本
2015/06/15 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
Java中的随机数Random
2022/03/17 Java/Android