首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您能用pycharm查看hdf5文件吗?

您能用pycharm查看hdf5文件吗?
EN

Stack Overflow用户
提问于 2018-05-01 13:37:57
回答 1查看 5.1K关注 0票数 5

是否有一种方式/插件可以查看hdf5文件在py魅力,以便您不必安装HDFVIEW手动检查一个文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-11 13:41:57

您可以使用h5py库。

您可能事先不知道HDF5文件的结构。如果是这样的话,您可以使用一个函数来迭代HDF5文件中的所有路径。下面是一个例子:

代码语言:javascript
复制
def traverse_datasets(hdf_file):

    """Traverse all datasets across all groups in HDF5 file."""

    import h5py

    def h5py_dataset_iterator(g, prefix=''):
        for key in g.keys():
            item = g[key]
            path = '{}/{}'.format(prefix, key)
            if isinstance(item, h5py.Dataset): # test for dataset
                yield (path, item)
            elif isinstance(item, h5py.Group): # test for group (go down)
                yield from h5py_dataset_iterator(item, path)

    with h5py.File(hdf_file, 'r') as f:
        for (path, dset) in h5py_dataset_iterator(f):
            print(path, dset)

    return None

示例用法:

代码语言:javascript
复制
traverse_datasets('file.h5')

/DataSet1 <HDF5 dataset "DataSet1": shape (655559, 260), type "<f4">
/DataSet2 <HDF5 dataset "DataSet2": shape (22076, 10000), type "<f4">
/index <HDF5 dataset "index": shape (677635,), type "|V384">

然后,要读取特定的数据集,可以选择一条路径:

代码语言:javascript
复制
with h5pyFile('file.h5', 'r') as f:
    arr = f['/DataSet1'][:]  # read entire dataset into memory

如果无法将数据保存在内存中,则可以迭代打印,也可以将切片提取到内存中。h5py文档有许多例子。语法遵循NumPy约定。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50117513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档