将HDF5子集存储为数据集(在python中)

时间:2015-01-06 15:39:57

标签: python hdf5

我对HDF5的了解有限,但我想了解有关HDF选择的一些内容。

为了给出一些背景,我有兴趣将HDF5用于机器学习中的应用程序。假设您有一个包含n行和p列的数据矩阵。在典型的k - 折叠交叉验证设置中,您将矩阵拆分为k个样本(每个样本大小为(n/k, p)),并重复使用k-1进行训练,1用于检测。当然,存储所有训练和测试集将占用大量空间。这是HDF5选择可能有用的地方。

如果我理解正确,选择可以引用数据集的任何子集。此外,可以将选择存储到数据集中。因此,从HDF5中的(n, p)数据集开始,我可以创建k个组(每个折叠一个),包含训练数据集(原始数据集中的行的子集)和测试数据集(剩下的)。由于它只是参考,它不会占用太多空间。

我找到了一些关于选择的文档,但不是很清楚。代码示例在C中,修改有点苛刻,我主要使用Python。我在PyTables找不到与此相关的任何内容。我找到了some examples in h5py,但我无法确定如何将数据放入子集中。

有人可以确认这是一个有趣的方法,并提供一些python代码,用于存储数据集中的行子集作为另一个数据集吗?

1 个答案:

答案 0 :(得分:1)

感谢h5py社区,我几乎能够做到这一点。请参阅主题here