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 zip文件 压缩
Dec 24 Python
Python求导数的方法
May 09 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python如何使用OS模块调用cmd
Feb 27 Python
Python基于pip实现离线打包过程详解
May 15 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python urlopen()参数代码示例解析
Dec 10 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
Python数据分析入门之数据读取与存储
May 13 Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
Python基础之数据类型知识汇总
May 18 #Python
You might like
php array_slice函数的使用以及参数详解
2008/08/30 PHP
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php数组转成json格式的方法
2015/03/09 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
Python中input与raw_input 之间的比较
2017/08/20 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
python ubplot使用方法解析
2020/01/10 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
介绍下Java的输入输出流
2014/01/22 面试题
服装厂厂长岗位职责
2013/12/27 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
计算机毕业生求职信
2014/06/10 职场文书
教师求职自荐书
2014/06/14 职场文书
教师继续教育反思周记
2015/06/25 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
零基础学java之循环语句的使用
2022/04/10 Java/Android
java版 简单三子棋游戏
2022/05/04 Java/Android