首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正在读取h5文件

正在读取h5文件
EN

Stack Overflow用户
提问于 2018-11-21 09:52:34
回答 1查看 5.4K关注 0票数 0

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

代码语言:javascript
运行
复制
>>> 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(())这两个术语来理解什么?

EN

回答 1

Stack Overflow用户

发布于 2018-11-21 23:08:03

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

下面是对您的操作中输出的解释。请注意,这些都是h5py函数(不是numpy)。

代码语言:javascript
运行
复制
>>> list(f.keys())
[u'data']

“key”是组成员的名称,“value”是成员(Group和Dataset对象)。这是文件根级别的节点名称列表。节点可以是组或数据集。在本例中,您有一个名为data的数据集。(此HDF5文件中唯一的组是根组:'/',根目录下没有组。)

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

代码语言:javascript
运行
复制
>>> dset = f[u'data']

shape属性为您提供数据集的维度:

代码语言:javascript
运行
复制
>>> dset.shape
(64, 64, 64)

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

代码语言:javascript
运行
复制
>>> dset.dtype
type(('<f8', (3,)))

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

代码语言:javascript
运行
复制
>>> for row in dset:
        print (row)

从这里开始,您如何处理数据由您决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53404251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档