NumPy IO
NumPy puede leer y escribir datos de texto o binarios en el disco.
NumPy introduce un formato de archivo simple para objetos ndarray:npy。
El archivo npy se utiliza para almacenar los datos, la forma, el dtype y otra información necesaria para reconstruir el ndarray.
Las funciones de IO más utilizadas son:
- Las funciones load() y save() son las dos funciones principales para leer y escribir datos de arrays en archivos. De forma predeterminada, el array se guarda en un formato binario sin comprimir en un archivo con extensión .npy.
- La función savez() se utiliza para escribir múltiples arrays en un archivo. De forma predeterminada, los arrays se guardan en un formato binario sin comprimir en un archivo con extensión .npz.
- Las funciones loadtxt() y savetxt() manejan archivos de texto normales (como .txt, etc.)
numpy.save()
La función numpy.save() guarda el array en un archivo con extensión .npy.
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
Descripción de parámetros:
- file: archivo a guardar, extensión .npy; si el final de la ruta del archivo no tiene la extensión .npy, se añadirá automáticamente.
- arr: el array a guardar
- allow_pickle: opcional, valor booleano, permite usar pickles de Python para guardar arrays de objetos. pickle en Python se usa para serializar y deserializar objetos antes de guardarlos en un archivo de disco o leerlos desde un archivo de disco.
- fix_imports: opcional, para facilitar la lectura de datos guardados con Python3 en Python2.
Ejemplo
Podemos ver el contenido del archivo:
$ cat outfile.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,), }
$ cat outfile2.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,), }
Se puede ver que el archivo es ilegible, porque son datos en formato binario exclusivo de NumPy.
Podemos usar la función load() para leer los datos y se mostrarán correctamente:
Ejemplo
El resultado de salida es:
[1 2 3 4 5]
np.savez
La función numpy.savez() guarda múltiples arrays en un archivo con extensión .npz.
numpy.savez(file, *args, **kwds)
Descripción de parámetros:
- file: archivo a guardar, con extensión.npz, si el final de la ruta del archivo no tiene la extensión.npz, dicha extensión se añadirá automáticamente.
- args: array a guardar. Se puede usar un parámetro de palabra clave para dar un nombre al array; los arrays pasados sin parámetros de palabra clave se nombrarán automáticamente comoarr_0, arr_1, … 。
- kwds: el array a guardar usa el nombre de palabra clave.
Ejemplo
El resultado de salida es:
['sin_array', 'arr_0', 'arr_1'] [[1 2 3] [4 5 6]] [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] [0. 0.09983342 0.19866933 0.29552021 0.38941834 0.47942554 0.56464247 0.64421769 0.71735609 0.78332691]
savetxt()
La función savetxt() almacena datos en un formato de archivo de texto simple; para obtener los datos se usa correspondientemente la función loadtxt().
np.loadtxt(FILENAME, dtype=int, delimiter=' ') np.savetxt(FILENAME, a, fmt="%d", delimiter=",")
El parámetro delimiter puede especificar varios delimitadores, funciones convertidoras para columnas específicas, el número de líneas a omitir, etc.
Ejemplo
El resultado de salida es:
[1. 2. 3. 4. 5.]
Usando el parámetro delimiter:
Ejemplo
El resultado de salida es:
[[0. 0. 1. 1. 2.] [2. 3. 3. 4. 4.] [5. 5. 6. 6. 7.] [7. 8. 8. 9. 9.]]Otras extensiones