我需要创建大约200万个向量,每个向量1000个插槽(每个插槽只包含一个整数)。
使用此数据量的最佳数据结构是什么?可能是我高估了所涉及的处理/内存量。
我需要迭代一组文件(总共大约34.5GB)并且每次在一行上遇到200万个项目中的一个(每个对应一个向量)时更新向量。
我可以轻松地为此编写代码,但我知道它不足以处理数据量,这就是为什么我要问你专家。 :)
最佳, 乔治娜
答案 0 :(得分:5)
您的计算机可能受内存限制。没有清理正在运行的程序:
a = numpy.zeros((1000000,1000),dtype=int)
不适合记忆。但一般情况下,如果您可以解决问题,以便您不需要一次在内存中的整个数组,或者您可以使用稀疏表示,我会使用numpy
(scipy
为稀疏表示。)
另外,您可以考虑将数据存储在hdf5
中,h5py
或pytables
或netcdf4
与netcdf4-python
在磁盘上,然后访问您的部分需要。
答案 1 :(得分:1)
假设大多数条目为0,则使用稀疏矩阵。
答案 2 :(得分:1)
如果您需要在RAM中工作,请尝试scipy.sparse matrix变体。它包括有效操作稀疏矩阵的算法。