Me agarraron el conjunto de datos pista1 KDD de Kaggle y decidieron cargar un archivo CSV de 3 columnas ~ 2,5 GB en la memoria, en mi 16GB instancia EC2 de alta memoria:principales problemas de la memoria de lectura en un archivo CSV con numpy
data = np.loadtxt('rec_log_train.txt')
la sesión de pitón consumió toda mi memoria (100%), y luego me mataron.
Luego leí el mismo archivo usando R (a través de read.table) y utilizó menos de 5GB de memoria RAM, que colapsó a menos de 2GB después de llamar al recolector de basura.
Mi pregunta es por qué esto falló en numpy, y cuál es la forma correcta de leer un archivo en la memoria. Sí, puedo usar generadores y evitar el problema, pero ese no es el objetivo.
relacionado http://stackoverflow.com/questions/8956832/python-out-of-memory-on-large-csv-file-numpy – Anycorn
Si la precisión es simple, 'np.fromfile/np.loadtxt (dtype = np.float32) 'tomará menos memoria, luego' X = X.astype (np.float64) 'cuando termine. – denis