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

Python 创建非常大的numpy数组时出现MemoryError,python,arrays,numpy,Python,Arrays,Numpy,我试图创建一个非常大的numpy零数组,然后将另一个数组中的值复制到这个大的零数组中。我正在使用Pycharm,并且我不断得到:MemoryError,即使我尝试只创建数组。下面是我如何尝试创建零数组的: import numpy as np last_array = np.zeros((211148,211148)) 我尝试过根据以下问题将Pycharm中的内存堆从750m增加到1024m,但似乎没有帮助 如果您想进一步澄清,请告诉我。谢谢 研究在scipy中使用稀疏阵列功能: 这里有一

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

import numpy as np

last_array = np.zeros((211148,211148))
我尝试过根据以下问题将Pycharm中的内存堆从750m增加到1024m,但似乎没有帮助


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

研究在scipy中使用稀疏阵列功能:

这里有一组关于scipy.sparse库的示例和教程:

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


要创建一个空稀疏数组,并按照您在评论中的要求在某些位置创建值,请执行以下操作:

有没有办法创建一个空数组,其中的值位于某些位置,例如:last_array[211147][9],但其他地方都是空的


您已经创建了一个大小超过100GB的数组,假设
int
的大小是4 bytesOh lord,我不知道。这太可怕了。但它是一个非常稀疏的数组。有没有办法在某些位置创建一个空数组,比如:
last_array[211148][9]
但是其他地方都是空的?这可能会有帮助:或者模块…@Smac89假设他使用的是64位Python,
np.zeros
默认情况下将创建一个float64数组,在这种情况下,他将看到大约356GB。非常感谢!我现在正在研究如何将一组值从一个数组中获取到稀疏矩阵中的特定位置。如果您感兴趣,下面是一个后续问题:
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])