在一個CSV文件中讀取我從Kaggle抓起KDD TRACK1數據集,並決定加載〜2.5GB 3列CSV文件到內存中,在我的16GB大內存的EC2實例:大內存的問題使用numpy的
data = np.loadtxt('rec_log_train.txt')
python會話吃了我所有的記憶(100%),然後被殺死。
然後我使用R(通過read.table)讀取相同的文件,並使用少於5GB的RAM,在我調用垃圾回收器後崩潰到小於2GB。
我的問題是爲什麼在numpy下失敗,以及將文件讀入內存的正確方法是什麼。是的,我可以使用生成器並避免該問題,但這不是目標。
相關http://stackoverflow.com/questions/8956832/python-out-of-memory-on-large-csv-file-numpy – Anycorn 2012-04-22 03:02:53
如果單精度會做,'np.fromfile/np.loadtxt(D型= np.float32)'會佔用更少的內存,然後'X = X.astype(np.float64)'完成。 – denis 2013-07-30 14:53:03