Python - 令人难以置信的大型矩阵的最佳数据结构

时间:2011-03-22 21:04:48

标签: python data-structures vector matrix large-data-volumes

我需要创建大约200万个向量,每个向量1000个插槽(每个插槽只包含一个整数)。

使用此数据量的最佳数据结构是什么?可能是我高估了所涉及的处理/内存量。

我需要迭代一组文件(总共大约34.5GB)并且每次在一行上遇到200万个项目中的一个(每个对应一个向量)时更新向量。

我可以轻松地为此编写代码,但我知道它不足以处理数据量,这就是为什么我要问你专家。 :)

最佳, 乔治娜

3 个答案:

答案 0 :(得分:5)

您的计算机可能受内存限制。没有清理正在运行的程序:

a = numpy.zeros((1000000,1000),dtype=int)

不适合记忆。但一般情况下,如果您可以解决问题,以便您不需要一次在内存中的整个数组,或者您可以使用稀疏表示,我会使用numpyscipy为稀疏表示。)

另外,您可以考虑将数据存储在hdf5中,h5pypytablesnetcdf4netcdf4-python在磁盘上,然后访问您的部分需要。

答案 1 :(得分:1)

假设大多数条目为0,则使用稀疏矩阵。

答案 2 :(得分:1)

如果您需要在RAM中工作,请尝试scipy.sparse matrix变体。它包括有效操作稀疏矩阵的算法。