gpt4 book ai didi

python - 如何在 Python 中检查 .h5 文件

转载 作者:行者123 更新时间:2023-11-28 21:05:55 27 4
gpt4 key购买 nike

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

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

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

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

运行 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

或者以更可用的方式返回元素的替代版本:

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'])])]

关于python - 如何在 Python 中检查 .h5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43371438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com