【问题标题】:Can you view hdf5 files in pycharm?你能在pycharm中查看hdf5文件吗?
【发布时间】:2018-10-11 13:15:24
【问题描述】:

有没有办法/插件在pycharm中查看hdf5文件,这样就不用安装HDFVIEW手动查看文件了?

【问题讨论】:

    标签: python pycharm hdf5 h5py


    【解决方案1】:

    您可以使用h5py 库。

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

    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
    

    示例用法:

    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">
    

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

    with h5pyFile('file.h5', 'r') as f:
        arr = f['/DataSet1'][:]  # read entire dataset into memory
    

    如果您的数据无法保存在内存中,您可以迭代打印或将切片提取到内存中。 h5py documentation 有很多例子。语法遵循 NumPy 约定。

    【讨论】:

    • 所以pycharm没有内置GUI来查看?
    • @ClaudiuCreanga,Pycharm 旨在运行 Python 代码,而不是专门用于 HDF5 文件。 HDF5 的“GUI”是您从 Python 中的 print 命令中得到的。如果您正在寻找特定于 HDF5 的解决方案,则需要使用 HDF5 产品(例如 HDFVIEW)。
    猜你喜欢
    • 2014-12-15
    • 2012-08-01
    • 2014-09-25
    • 1970-01-01
    • 2012-03-04
    • 2019-05-20
    • 2018-01-13
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多