读取h5文件

时间:2018-11-21 01:52:34

标签: python-3.x numpy h5py

我是python新用户,我想从h5文件中读取数据。下面是我用来读取数据的代码:

>>> import numpy as np
>>> import h5py
>>> f = h5py.File('file.h5', 'r')
>>> list(f.keys())
[u'data']
>>> dset = f[u'data']
>>> dset.shape
(64, 64, 64)
>>> dset.dtype
dtype(('<f8', (3,)))

有人可以帮助我理解这些命令吗?我的问题是: 1.我可以通过[u'data']和dtype(('

1 个答案:

答案 0 :(得分:0)

正如@hpaulj所提到的,h5py文档是一个很好的参考。您还需要了解基本的HDF5文件概念。这是一个大话题。首先,请查看HDF集团的Learning HDF5页。我(从个人经验中)知道,如果您不了解如何导航层次结构,您将很挣扎。了解组对象和数据集对象之间的区别。

以下是您OP中输出的说明。 请注意,这些都是h5py函数(不是numpy)。

>>> list(f.keys())
[u'data']

“键”是组成员的名称,“值”是成员(组和数据集对象)。这是文件根级别的节点名称的列表。节点可以是组或数据集。就您而言,您有一个名为data的数据集。 (此HDF5文件中的唯一组是根组:'/',根下没有任何组。)

下一步将访问data数据集中的数据。

>>> dset = f[u'data']

shape属性为您提供数据集的尺寸:

>>> dset.shape
(64, 64, 64)

dtype属性为您提供数据集的数据类型(就像numpy一样):

>>> dset.dtype
type(('<f8', (3,)))

因此,您有一个浮点数数组。如果您想查看数据,则可以输入以下内容(我只对小型数据集执行此操作,或者切片以打印几行):

>>> for row in dset:
        print (row)

从这里开始,您对数据的处理完全取决于您。