如何修复此内存错误:无法在 Python 中分配

问题描述 投票:0回答:1

这是我的代码

out = out.T.groupby(level=0, sort=False).sum().T

它给出了这个错误

MemoryError: Unable to allocate 13.1 GiB for an array with shape (37281, 47002) and data type int64

我试过这个

out = out.T.groupby(level=0, sort=False).sum().astype(np.int8).T

但仍然遇到同样的错误!

知道如何解决吗?

python dataframe memory
1个回答
0
投票

您的代码创建了一些大型临时数组。 您可能可以分块执行此操作,累积它们,然后合并结果。

chunksize= int(1e4)  # or some other value
results = []
for i in range(0, len(out), chunksize):
    results.append(out[i:i+chunksize].T.groupby(level=0, sort=False).sum())
© www.soinside.com 2019 - 2024. All rights reserved.