gpt4 book ai didi

python - 使用大型数据集时发生内存错误

转载 作者:行者123 更新时间:2023-12-03 08:10:24 26 4
gpt4 key购买 nike

我有3个numpy数组的插值数据。

Each of Length - 107952899

面对问题

当我将这三个numpy数组组合为pandas df时,我得到 MemoryError

转换为df的原因

我必须做一些计算, Pandas 让它变得更容易,所以我更喜欢 Pandas 。
我相信三个numpy阵列的内存大小超过3 Gb甚至更多。

系统详情:

8Gb RAM
python 3.6.3

需求

我了解发生此类错误的原因
但是是否有可能避免MemoryError或要遵循的其他最佳实践?

最佳答案

When i combine these three numpy array as pandas df, I am getting MemoryError.



假设您这样做:
import numpy as np
import pandas as pd

big_array_1 = np.array(np.random.random(10**7))
big_array_2 = np.array(np.random.random(10**7))
big_array_3 = np.array(np.random.random(10**7))

在我的计算机上,它需要大约300 MB的内存。

然后,如果我这样做:
df = pd.DataFrame([big_array_1,big_array_2, big_array_3])

内存飙升至9Gb。如果将其乘以10(以获取3 Gb的数据而不是我的300的数据),则将增加到90 Gb,这可能比Ram +可用的交换要多,这将引发 MemoryError

但是,如果相反,您可以执行以下操作:
df = pd.DataFrame({"A":big_array_1, "B": big_array_2, "C":big_array_3})

那么您的内存使用量将不会明显大于三个阵列之一。

我怀疑这是你的问题...

关于python - 使用大型数据集时发生内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com