我从 Kaggle 获取了 KDD track1 数据集,并决定在我的 16GB 高内存 EC2 实例上将一个约 2.5GB 的 3 列 CSV 文件加载到内存中:
data = np.loadtxt('rec_log_train.txt')
python 会话占用了我所有的内存(100%),然后被杀死了。
然后我使用 R(通过 read.table)读取了同一个文件,它使用了不到 5GB 的内存,在我调用垃圾收集器后它崩溃到不到 2GB。
我的问题是为什么这会在 numpy 下失败,以及将文件读入内存的正确方法是什么。是的,我可以使用生成器来避免问题,但这不是目标。