您可以查看 pycharm 中的 hdf5 文件吗?
Can you view hdf5 files in pycharm?
有没有一种方法/插件可以在 pycharm 中查看 hdf5 文件,这样您就不必安装 HDFVIEW 来手动检查文件?
您可以使用 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 中查看 hdf5 文件,这样您就不必安装 HDFVIEW 来手动检查文件?
您可以使用 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 约定。