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