使用 pytables 访问 hdf5 中的数组子集
Access subset of array in hdf5 with pytables
我是 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()
如何告诉读取模块只加载数组的一个子集?
在此先感谢您的帮助!
您可以使用以下任何一种方法来读取数组的子集。所有方法 return 数据作为当前风格的对象(与 Array 相同的数据类型)。
array0 = Array.read(start=None, stop=None, step=None)
您还可以使用 NumPy-style 切片。
NumPy-style 点和布尔选择以及支持
花哨的索引。 [后者使用指定轴中的索引列表。]
示例如下。
array1 = array[0:4] # simple selection
array2 = array[:,0] # slice selection
array3 = array[1, ::2, 1:4] # general slice selection
具体根据您的要求,可以使用以下方式。 (它读取第 2 个和第 3 个索引的前 100 个数据条目,即轴 1 和轴 2):
your_slice = h5file.root.array[:,0:100,0:100] # slice selection
我是 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()
如何告诉读取模块只加载数组的一个子集?
在此先感谢您的帮助!
您可以使用以下任何一种方法来读取数组的子集。所有方法 return 数据作为当前风格的对象(与 Array 相同的数据类型)。
array0 = Array.read(start=None, stop=None, step=None)
您还可以使用 NumPy-style 切片。
NumPy-style 点和布尔选择以及支持
花哨的索引。 [后者使用指定轴中的索引列表。]
示例如下。
array1 = array[0:4] # simple selection
array2 = array[:,0] # slice selection
array3 = array[1, ::2, 1:4] # general slice selection
具体根据您的要求,可以使用以下方式。 (它读取第 2 个和第 3 个索引的前 100 个数据条目,即轴 1 和轴 2):
your_slice = h5file.root.array[:,0:100,0:100] # slice selection