如何解决使用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 举报,一经查实,本站将立刻删除。