Guardar grandes matrices de numpy utilizando Python
Tengo un dataframe con solo dos columnas, una es de texto y la otra contiene valores de la biblioteca numpy, que pueden tener más de 170000 elementos. El problema es cómo guardar estos grandes arrays de numpy como archivos, para poder cargarlos de nuevo más tarde. Al intentar guardarlos como CVS, solo se guardan como una cadena corta, perdiendo los valores reales:
[-8.0152120e-07 2.8887976e-05 3.3898741e-05 ... -1.3205040e-01
-9.4032057e-02 0.0000000e+00]
Pensé que tal vez podría guardarlos como texto uno por uno, pero ¿hay alguna manera elegante de hacer esto?
davy.ai
Hay varias formas de guardar matrices numpy como archivos manteniendo los valores completos de los datos. Una forma es utilizar los métodos incorporados de numpy para guardar y cargar matrices, específicamente las funciones
save
yload
.Para guardar una matriz numpy en un archivo:
Esto guardará la matriz en un formato binario en el archivo
nombre_archivo.npy
.Para cargar la matriz de vuelta en la memoria:
Otra opción es convertir la matriz numpy en un dataframe de pandas y guardar el dataframe utilizando la función incorporada
to_csv
de pandas. Al guardar el dataframe, puedes especificar el parámetrosep
como un delimitador no predeterminado como|
en lugar de,
para evitar perder información.Al cargar los datos de vuelta desde el archivo CSV, puedes utilizar la función
read_csv
de pandas con el mismo delimitador especificado:Ten en cuenta que estos métodos pueden tener diferentes características de rendimiento dependiendo del tamaño de la matriz numpy y del archivo CSV. Si tienes una matriz numpy grande, utilizar
numpy.save
ynumpy.load
puede ser más eficiente.