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

ger*_*erm 7 python hdf5 h5py

我有一个HDF5文件,其中包含一个带有列名的2D表.当我在这个对象上掠夺时,它会在HDFView中显示出来results.

事实证明,这results是一个"复合数据集",一个一维数组,其中每个元素都是一行.以下是HDFView显示的属性:

数据集属性

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

列名V2pt,R2pt等等.

我可以将整个数组作为数据读取,我可以读取一个元素

res[0,...,"V2pt"].
Run Code Online (Sandbox Code Playgroud)

这将返回列第一行中的数字V2pt.替换01将返回第二行值等.

如果我先知道colunm名称,那就行得通.但我没有.

我只是想获得整个数据集它的列名.我怎样才能做到这一点?

我看到HDF5文档中的HDF5文档中有一个get_field_info函数,但我发现在h5py中没有这样的函数.

我搞砸了吗?

更好的是将此表作为pandas DataFrame读取的解决方案......

小智 12

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

如果你需要知道具体的dtype东西,res.dtype.fields['V2pt']就会给它一些.