złapałem Track1 zestawu danych KDD z Kaggle i postanowił załadować ~ 2,5 GB 3-kolumny pliku CSV do pamięci, 16 GB na moim instancji EC2 wysokiej Pamięć:poważne problemy z pamięcią czytanie w pliku csv przy użyciu numpy
data = np.loadtxt('rec_log_train.txt')
sesja Pythona wyczerpała całą moją pamięć (100%), a następnie została zabita.
Potem czytałem ten sam plik używając R (via read.table) i użyłem mniej niż 5 GB pamięci RAM, który zwinął się do mniej niż 2 GB po tym, jak zadzwoniłem do garbage collectora.
Moje pytanie brzmi: dlaczego to się nie powiodło pod numpy i jaki jest właściwy sposób odczytu pliku do pamięci. Tak, mogę używać generatorów i unikać problemu, ale to nie jest celem.
powiązane http://stackoverflow.com/questions/8956832/python-out-of-memory-on-large-csv-file-numpy – Anycorn
Jeśli zrobi się pojedyncza precyzja, 'np.fromfile/np.loadtxt (dtype) = np.float32) 'zajmie mniej pamięci, następnie' X = X.astype (np.float64) 'po zakończeniu. – denis