由于我找不到处理问题的最佳方法,所以我来这里询问。。我是Python的初学者,但我必须处理大型数据集。
然而,我不知道什么是最好的方式来处理"内存错误";问题我已经有了64位3.7.3 Python版本。
我看到我们可以使用TensorFlow,或者在pandas指令中指定块,或者使用库Dask,但我不知道哪一个最适合我的问题,作为初学者,这还不太清楚。
我有一个巨大的数据集(超过100M的观测值(,我不认为减少数据集会减少很多内存。
我想做的是用一列测试样本来测试多个ML算法。我不知道如何处理这个问题。
谢谢!
这个问题是高级别的,所以我将在Dask中提供一些减少内存使用的广泛方法:
- 使用类似Parquet的柱状文件格式,这样就可以利用柱状修剪
- 使用需要较少内存的列数据类型
int8
而不是int64
- 在适当的情况下策略性地保留内存
- 使用大小适合您的数据的集群(对2GB数据进行分析所需的内存量与2TB不同(
- 将数据拆分为多个文件,以便更容易并行处理
您的数据有1亿行,并没有那么大(除非它有数千列(。大数据通常有数十亿或数万亿行。
请随意添加更具体的问题,我可以提供更具体的建议。您可以提供您的机器/集群的规格、DataFrame的内存需求(通过ddf.memory_usage(deep=True)
(以及您试图运行的实际代码。