创建一个非常大的numpy数组时的MemoryError

And*_*arl 10 python arrays numpy

我正在尝试创建一个非常大的numpy零数组,然后将另一个数组中的值复制到大的零数组中.我正在使用Pycharm并且我不断得到:MemoryError即使我尝试并且只创建数组.以下是我尝试创建零数组的方法:

import numpy as np

last_array = np.zeros((211148,211148))
Run Code Online (Sandbox Code Playgroud)

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

如果您想进一步澄清,请与我们联系.谢谢!

ami*_*tas 8

在scipy:
scipy.sparse文档中查看使用稀疏数组功能.

scipy.sparse库中有一组示例和教程:
Scipy讲义:SciPy中的稀疏矩阵

这可以帮助您解决内存问题,并使一切运行得更快.


要创建一个空的稀疏数组,其值在您的注释中询问的某些位置:

有没有办法在某些位置创建一个包含值的空数组,例如:last_array [211147] [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])
Run Code Online (Sandbox Code Playgroud)