我是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(('
答案 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)
从这里开始,您对数据的处理完全取决于您。