在Python中,是否可以从HDF5文件的复合数据集中读取字段名?

2024-10-01 09:25:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个HDF5文件,其中包含一个具有列名的2D表。当我在这个名为results的对象上拾取时,它在HDFView中显示出来。在

原来,results是一个“复合数据集”,是一个一维数组,其中每个元素都是一行。以下是HDFView显示的属性:

dataset_properties.png" alt="Dataset properties"/>

我可以得到这个对象的句柄,我们称之为res。在

列名是V2ptR2pt,等等

我可以将整个数组作为数据读取,也可以使用

res[0,...,"V2pt"].

这将返回第V2pt列第一行中的数字。将0替换为1将返回第二行值,依此类推

如果我事先知道列名的话,那就行了。但我没有

我只想得到整个数据集及其列名。我怎么能做到呢?在

我看到HDF5文档中的HDF5 documentation中有一个get_field_info函数,但我在h5py中找不到这样的函数。在

我完蛋了吗?在

更好的解决方案是将此表读作pandas数据帧。。。在


Tags: 文件数据对象函数元素属性pngres
1条回答
网友
1楼 · 发布于 2024-10-01 09:25:23

这在h5py中很容易实现,就像Numpy中的复合类型一样。 如果res是数据集的句柄,res.dtype.fields.keys()将返回一个 所有字段名的列表。在

如果你需要知道一个特定的dtype,类似res.dtype.fields['V2pt']的东西就可以得到。在

相关问题 更多 >