微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用pytables访问hdf5中的数组子集

如何解决使用pytables访问hdf5中的数组子集

我是使用pytables的新手。

我正在尝试访问存储在hdf5-文件中的数组。

例如,数组的尺寸为100x2000x5000,现在,我尝试仅访问尺寸2和3的前100个数据条目,例如“ [:,0,0]”。 但是在pytables的文档中,我仅找到以下示例:

import tables
h5file = tables.open_file('file.h5','r')
data = h5file.root.array.read()
h5file.close()

我怎样才能告诉读取模块仅加载数组的子集?

在此先感谢您的帮助!

解决方法

您可以使用以下任何一种方法来读取数组的子集。所有方法都将数据作为当前形式的对象(与Array相同的dtype)返回。

array0 = Array.read(start=None,stop=None,step=None)

您还可以使用NumPy样式切片。 同时支持NumPy样式的点和布尔选择 花式索引。 [后者使用在特定轴上指定的索引列表。]
下面的示例。

array1 = array[0:4]           # simple selection
array2 = array[:,0]           # slice selection 
array3 = array[1,::2,1:4]   # general slice selection

针对您的请求,您可以使用以下内容。 (它沿第2和第3个索引(即轴1和轴2)读取前100个数据条目):

your_slice = h5file.root.array[:,0:100,0:100]           # slice selection

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。