如何在 Python 中检查 .h5 文件

2024-01-22

如何在 Python 中查看给定 .h5 文件有哪些变量、数据集等?

我可以通过运行这个来读取文件

import h5py
f = h5py.File(filename, 'r')

我现在如何查看我的 .h5 文件有哪些变量?

Running f.keys()输出非信息性

KeysView(<HDF5 file filename (mode r)>)

在 Matlab 中,我只是简单地调用 h5disp(filename) 但想知道如何在 Python 中执行此操作


也许有点矫枉过正,但我​​有这个,可能对某人有用:

from __future__ import print_function

def scan_hdf5(path, recursive=True, tab_step=2):
    def scan_node(g, tabs=0):
        print(' ' * tabs, g.name)
        for k, v in g.items():
            if isinstance(v, h5.Dataset):
                print(' ' * tabs + ' ' * tab_step + ' -', v.name)
            elif isinstance(v, h5.Group) and recursive:
                scan_node(v, tabs=tabs + tab_step)
    with h5.File(path, 'r') as f:
        scan_node(f)

以及简单的输入:

>>> scan_hdf5('/tmp/dummy.h5')
/
   - /d1
   /g1
     - /g1/d2
     - /g1/d3
   /g2
     - /g2/d4
     /g2/g3
       - /g2/g3/d5

或者返回更多元素的替代版本usable:

def scan_hdf52(path, recursive=True, tab_step=2):
    def scan_node(g, tabs=0):
        elems = []
        for k, v in g.items():
            if isinstance(v, h5.Dataset):
                elems.append(v.name)
            elif isinstance(v, h5.Group) and recursive:
                elems.append((v.name, scan_node(v, tabs=tabs + tab_step)))
        return elems
    with h5.File(path, 'r') as f:
        return scan_node(f)

有回报:

>>> scan_hdf5_2('/tmp/dummy.h5')
[u'/d1',
 (u'/g1', [u'/g1/d2', u'/g1/d3']),
 (u'/g2', [u'/g2/d4', (u'/g2/g3', [u'/g2/g3/d5'])])]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中检查 .h5 文件 的相关文章

随机推荐

  • 如何制作像 Stackoverflow 中那样的投票赞成或反对按钮?

    Problems 如何制作一个 Ajax 按钮 向上和向下箭头 使得数字可以增加或减少 如何将用户的操作保存到变量 Number Of Votes Of QuestionID 我不确定是否应该使用数据库作为变量 不过 我知道还有一种更简单的
  • 使用 php 创建 3 位毫秒

    我有 13 位数字 想要创建包含毫秒的日期和时间 示例代码是这样的这是我的 php 脚本 mil 1328910295939 seconds mil 1000 showdate date Y m d H i s seconds echo s
  • 通过 itext pdf 库进行图像旋转

    我无法通过在java程序中使用itext pdf库从中心或任何固定点旋转图像 当我旋转图像时 它的x和y坐标会发生变化 请在这方面帮助我 Image pdfImage Image getInstance assets product png
  • 通过 JDBC 显示多列索引的列名

    有谁知道如何获取跨多个列的索引的列名 请参阅SQL via JDBC 我确实知道如何获取所有索引列 请参阅代码 但这样我就无法看到哪些列链接到单个索引 CREATE TABLE IF NOT EXISTS foo id int 11 NOT
  • CSS3 Flexbox 布局一行最多 3 个子项目

    在将下一个子元素推入新行之前 CSS 中是否有一种简单的方法可以在同一行上拥有固定的最大子项数 据我了解 Flexbox 如果子项目在其上方的行上没有足够的可用空间 则只会将其推入新行 但我正在寻找一个 CSS 规则或函数 让我说 我希望任
  • 将用户表单复制到另一个工作簿

    我已经寻找过这个问题的答案 但找不到任何与我正在寻找的内容完全匹配的内容 如果有人有答案或可以为我指出一个可以回答这个问题的方向 那就是非常感激 我曾讨论过构建一个将数据输入工作簿的解决方案并已成功构建它 但是需要添加到的工作簿是一个非常活
  • 如何使用现代版本的 CodePipeline 进行 S3 部署

    我正在尝试使用最新版本的 AWS CDK for typescript 1 128 设置一个全新的管道 管道的创建非常简单 我已经添加了源代码和构建阶段 没有任何问题 这里的目标是自动部署静态登陆页面 到目前为止我有这段代码 const l
  • ASP.NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter

    标题是非常不言自明的 ASP NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter 符号例如 TRX USDT 应该被分割 并转换为new Symbol TRX USDT 因为我已经这样做了 基本
  • 比较数组时难以填充列表

    在下面我想使用 GetUsersRole 但对显示的部分有困难 我想将 Roles 值与 usersRole 进行比较 如果 Role usersRole 则 UserRole true 否则为 false 基本上我想要这样的结果 用户1
  • 今天我该如何使用装饰器?

    我看到今天已经在一些 javascript 代码中使用了装饰器 我的问题实际上有两个方面 First 如果装饰器还没有最终确定 今天怎么可能在生产代码中使用它们呢 浏览器支持会不会不存在 Second 鉴于今天可以使用它 正如一些开源项目所
  • ajax调用完成后开始下载文件

    ajax type POST url processform php dataType json data name name email email city city country country day day month mont
  • 如何在textview上显示最新的附加文本?

    我正在开发一个聊天应用程序 每当我提交或接收短信时 我都会将它们附加到聊天框中 当列表变长时 我需要向下滚动才能看到它们 如何让它自动滚动到新追加的文本
  • Angular-jwt 令牌未在我的 http 请求标头中发送

    在我的 Angular 应用程序中 我向后端服务器的端点 api token 发送 http GET 请求 如下所示 并接收令牌 后端 service ts authenticate userName String passwd Strin
  • 是否可以将 C# 单例包装在接口中?

    我目前有一个类 其中只有静态成员和常量 但是我想将其替换为封装在接口中的单例 但是我该如何做到这一点 记住我见过的每个单例实现都有一个静态实例方法 从而违反了接口规则 一个需要考虑的解决方案 而不是自己动手 是利用 IoC 容器 例如Uni
  • PostgreSQL 11 中外部表的并行追加

    PostgreSQL 11 中的外部表是否可以实现并行追加 就像本地表一样 本地表 select version version PostgreSQL 11beta3 on x86 64 pc linux gnu compiled by g
  • 在 pyqt 中使用 sys.exit() 和 app.exec_

    任何人都可以解释使用的相对优点sys exit app exec 而不是更简单的app exec 在 PyQt 中启动 GUI 我是 PyQt 的新手 并且看过这两个示例 当 Unix 风格的应用程序退出时 他们向其父进程返回一个数字 ht
  • 我如何确定工作的状态?

    我有一个安排作业的存储过程 这项工作需要很长时间才能完成 大约 30 到 40 分钟 我需要了解这份工作的状态 以下详细信息会对我有所帮助 1 如何查看已安排在未来某个时间且尚未开始的所有作业的列表 2 如何查看正在运行的作业列表以及它们运
  • 在哪里可以找到有关 Mach 内核消息传递的好文档 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Windows 10 上安装 PostgreSql 12 时出现数据库集群错误

    当我尝试在 Windows 计算机上安装 PostgreSql 11 12 时 出现以下错误 初始化数据库集群时出错 以下是详细信息 端口号 5432 安装位置 我尝试将其安装在 C ProgramFiles 中 也尝试直接安装在 C 盘中
  • 如何在 Python 中检查 .h5 文件

    如何在 Python 中查看给定 h5 文件有哪些变量 数据集等 我可以通过运行这个来读取文件 import h5py f h5py File filename r 我现在如何查看我的 h5 文件有哪些变量 Running f keys 输