我计划使用HDF来存储一个非常大的矩阵,类似于1e6x1e6的浮动。
我需要成批地读取连续行或列的矩阵。
我的问题是,是构造/调整HDF文件以使速度最大化的最佳方式是什么?
以下几点:
发布于 2014-04-15 14:42:07
我假设您已经使用了一些稀疏表示,例如来自lil_matrix的scipy.sparse。
我认为有两个可行的选择
1)可以使用cPickle.dump将二进制内容转储到文件中,例如,参见Python: how do you store a sparse matrix using python?
2)您可以使用cPickle使用cPickle.dumps将内容转储到字符串,然后使用h5py作为字符串存储内容。
一般来说,处理大量的数据是昂贵的。例如,当使用lil_matrix时,矩阵上的操作是昂贵的,对磁盘的读/写所需的时间是存储数据的方式。使用包含字符串的HDF5到原始C文件的开销是没有的(如果您关闭压缩)。我建议您关闭这个表达式,因为它不会大大缩小大小(它已经很稀疏了)。
https://stackoverflow.com/questions/23085929
复制相似问题