python3 hdf5文件 遍历代码

 更新时间:2021年05月19日 14:47:33   作者:运动码农  
这篇文章主要介绍了python3 hdf5文件 遍历代码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

看代码吧~

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • tensorboard 可视化之localhost:6006不显示的解决方案

    tensorboard 可视化之localhost:6006不显示的解决方案

    这篇文章主要介绍了tensorboard 可视化之localhost:6006不显示的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python 在服务器上调用数据库特别慢的解决过程

    python 在服务器上调用数据库特别慢的解决过程

    这篇文章主要介绍了python 在服务器上调用数据库特别慢的解决过程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python中pandas库sort_values()方法的使用

    Python中pandas库sort_values()方法的使用

    最后去看了有关于 sort_values 的文档,成功解决先把单词出现频次由高往低依次排序,再把频次相同的情况下的单词按照 MD5 值排序这个问题,下面通过本文讲解下Python中pandas库sort_values()方法的使用,感兴趣的朋友一起看看吧
    2023-07-07
  • Python代码列表求并集,交集,差集

    Python代码列表求并集,交集,差集

    这篇文章主要介绍了Python代码列表求并集,交集,差集,下面文章讲详细的介绍如何利用python代码实现并集,交集,差集的相关资料展开内容,需要的朋友可以参考一下
    2021-11-11
  • python获取代码运行时间的实例代码

    python获取代码运行时间的实例代码

    今天小编就为大家分享一篇python获取代码运行时间的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python中几种括号的使用()、[]、{}举例说明

    python中几种括号的使用()、[]、{}举例说明

    这篇文章主要介绍了python中几种括号的使用()、[]、{}举例说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 一次python-flask蓝图的踩坑记录

    一次python-flask蓝图的踩坑记录

    简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能,在Flask中,使用蓝图可以帮助我们实现模块化应用的功能,这篇文章主要给大家介绍了关于python-flask蓝图踩坑的相关资料,需要的朋友可以参考下
    2021-08-08
  • 一篇文章了解Python中常见的序列化操作

    一篇文章了解Python中常见的序列化操作

    这篇文章主要给大家介绍了软玉Python中常见的序列化操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 批量获取及验证HTTP代理的Python脚本

    批量获取及验证HTTP代理的Python脚本

    这篇文章主要介绍了批量获取及验证HTTP代理的Python脚本,需要的朋友可以参考下
    2017-04-04
  • Python生成ubuntu apt镜像地址实现

    Python生成ubuntu apt镜像地址实现

    本文主要介绍了Python生成ubuntu apt镜像地址实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05

最新评论