H5py:快速保存numpy.ndarray列表的列表?

时间:2014-09-22 20:29:21

标签: python numpy h5py

如何使用h5py有效地保存和阅读numpy.ndarray列表的列表?例如。我想保存/阅读:

Y = np.arange(3**3).reshape(3,3,3)
X = [[Y,Y],[Y,Y,Y],[Y]]

我正在寻找最有效(没有双循环等)的解决方案。

1 个答案:

答案 0 :(得分:1)

我将假设Y是相同的类型,例如int32或string。通常,处理此问题的最有效方法是将Y作为单个向量(展平)发出,其长度为:

totalLen = sum(map(len, X))
offsets  = cumsum(map(len, X))

您也可以将偏移量粘贴到hdf5文件中,并在开始时将其加载到内存中。然后得到列表我只是:

offsets[i]:(offsets[i+1] - 1)