有没有办法用Python读取hdf5文件?

问题描述 投票:0回答:1

我是编码新手,我想知道是否可以使用 python 读取 hdf5 文件。更具体地说,我希望访问列(按名称)以提取信息。

我已经使用标准 pandas 方法读取了 h5 文件,如下所示:pd.read_hdf('file_path.h5')

以上不适用于我的 hdf5 文件。现在,我正在使用模块:h5py 来加载它,如下所示:

import h5py
df = h5py.File('filename.hdf5', "r")

现在我不太确定如何阅读特定专栏。数据集中的每一列都有一个名称,例如:年龄、距离(等等)

这是我的第一个问题,所以我很高兴提供有关我的问题的更多信息:)

hdf5 h5py
1个回答
0
投票

你看过h5py文档吗?这非常有帮助。 Stack Overflow 上也有几个很好的答案。读取 HDF5 文件非常简单(特别是如果您熟悉 NumPy 数组)。

数组的数据类型与数据集匹配。如果数据集是同质的,它的行为就像一个 ndarray。

根据您对“列”名称的引用,听起来您拥有异构数据集。它们的处理方式类似于 NumPy 结构化数组,其中数据类型由元组列表定义,如下所示

('field name', dtype)
;每个字段/列一个。

我扩展了您的示例以帮助您入门。 (注意:代码中的

df
是一个h5py文件对象——它不是一个数据集!)

import h5py
with h5py.File('filename.hdf5', "r") as h5f:
     # this creates a dataset object:
     dataset = h5f[dataset name here]
     # to get the dtype and shape
     print(dataset.dtype, dataset.shape) 
     # adding [()] reads the entire dataset into an array:
     dataset_as_array =  h5f[dataset name here][()] 
     # this extracts a field/column of data from that dataset
     col_array = h5f[dataset name here][column name here] # uses the h5py file object
     # OR
     col_array = dataset[column name here] # uses the dataset object

在上面的代码中,

dataset
h5f[dataset name here]
都引用数据集并且可以互换。

© www.soinside.com 2019 - 2024. All rights reserved.