ho afferrato il TRACK1 dataset KDD da Kaggle e ha deciso di caricare un file CSV a 3 colonne ~ 2,5 GB in memoria, il mio 16GB istanza EC2 alta memoria:maggiori problemi di memoria di lettura in un file CSV utilizzando NumPy
data = np.loadtxt('rec_log_train.txt')
la sessione python ha consumato tutta la mia memoria (100%), e poi è stata uccisa.
Ho quindi letto lo stesso file utilizzando R (tramite read.table) e ha utilizzato meno di 5 GB di RAM, che è crollato a meno di 2 GB dopo aver chiamato il garbage collector.
La mia domanda è: perché questo ha fallito in numpy, e qual è il modo corretto di leggere un file in memoria. Sì, posso usare i generatori ed evitare il problema, ma non è questo l'obiettivo.
correlati http://stackoverflow.com/questions/8956832/python-out-of-memory-on-large-csv-file-numpy – Anycorn
Se la precisione singola andrà bene, 'np.fromfile/np.loadtxt (dtype = np.float32) 'richiederà meno memoria, quindi' X = X.astype (np.float64) 'una volta terminato. – denis