python - 无法为shape(129213603, 28)和数据类型int8的数组分配3.37GiB。
如果我在Spyder上运行我的python代码,我得到了上述错误代码。我有一些非常大的列表,我把它们放到一个叫 multiindex
4份名单。
customer_list = []
for y in df_1['Sold-to SAP Cust No']:
if y not in customer_list:
customer_list.append(y)
customer_list.sort()
df_c = pd.MultiIndex.from_product([
customer_list,
Material_list,
Week_list,
base_list],
列表大约有200 -300个条目。
这个错误代码是否意味着列表太大?
【回答】:
问题是你试图分配的内存比可用的多。
在Linux上,你可以在一定程度上超额分配内存,在windows上你可以管理虚拟内存。
这里是Stack Overflow上的一个问题的链接,可能会有一些用处。无法分配具有形状和数据类型的数组。.
还有一些非常有趣的关于管理内存的文章。我诚实的建议是研究如何在不把所有数据放在内存中的情况下操作你的数据。你可以把你的数据存储在一个文件中,或者在数据库中处理你的数据。这里有一篇文章是关于大型数据集的。如何处理大型数据集. 这篇文章是针对pandas的,但概念是一样的。
从长远来看,你会受益匪浅,特别是如果你试图在不同的系统上运行这个程序或使用更大的数据集。