创建非常大的numpy数组时出现MemoryError



我正试图创建一个非常大的numpy零数组,然后将值从另一个数组复制到这个大的零数组中。我正在使用Pycharm,即使我尝试只创建数组,我也会得到:MemoryError。以下是我如何尝试创建零数组:

import numpy as np
last_array = np.zeros((211148,211148))

根据这个问题,我尝试将Pycharm中的内存堆从750米增加到1024米:https://superuser.com/questions/919204/how-can-i-increase-the-memory-heap-in-pycharm,但这似乎没有帮助。

如果你想进一步澄清,请告诉我。谢谢

研究在scipy中使用稀疏阵列功能:
scipy.sparse文档。

这里有一组关于scipy.sparse库的示例和教程:
scipy讲义:scipy 中的稀疏矩阵

这可能会帮助你解决内存问题,并使一切运行得更快。


按照您在评论中的要求,创建一个在特定位置具有值的空稀疏数组:

是否有任何方法可以创建一个在某些位置具有值的空数组,例如:last_array[211447][9],但其他位置都是空的?

from scipy.sparse import *
values = [42]
row_ind = [211147]
col_ind = [9] 
last_array = csc_matrix((values, (row_ind, col_ind)), shape=(211148,211148))
print(last_array[211147,9])

相关内容

最新更新