English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
NumPy introduce un formato di file semplice per l'oggetto ndarray: npy.
I file npy vengono utilizzati per memorizzare i dati necessari per ricostruire ndarray, grafici, dtype e altre informazioni.
Le funzioni di IO più comuni sono:
Le funzioni load() e save() sono le due principali funzioni per leggere e scrivere dati di array di file, per impostazione predefinita, gli array sono salvati in formato binario non compresso con estensione .npy. La funzione savze() viene utilizzata per scrivere più array in un file, per impostazione predefinita, gli array sono salvati in formato binario non compresso con estensione .npz. Le funzioni loadtxt() e savetxt() gestiscono i file di testo normali (.txt, ecc.) Descrizione dei parametri: Possiamo controllare il contenuto del file: Si può vedere che i file sono corrotti, perché sono dati successivi al formato binario specifico di Numpy. Possiamo utilizzare la funzione load() per leggere i dati e mostrarli correttamente: Il risultato dell'output è: La funzione numpy.savez() salva più array in un file con estensione npz. Descrizione dei parametri: Il risultato dell'output è: La funzione savetxt() memorizza i dati in un formato di file di testo semplice, corrispondendo all'uso della funzione loadtxt() per ottenere i dati. Il parametro delimiter può specificare vari separatori, funzioni di conversione per colonne specifiche, righe da saltare, ecc. Il risultato dell'output è: Utilizzo del parametro delimiter:numpy.save()
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
import numpy as np
a = np.array([1,2,3,4,5])
# Salvare su file test.npy
np.save('test.npy',a)
# Salvare su file test1.npy, se la percorso finale del file non ha estensione.npy, l'estensione.npy verrà aggiunta automaticamente
np.save('test1.npy',a)
$ cat test.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,),}
$ cat test1.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,),}
import numpy as np
b = np.load('test.npy')
print (b)
[1 2 3 4 5]
np.savez
numpy.savez(file, *args, **kwds)
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.arange(0, 1.0, 0.1)
c = np.sin(b)
# c utilizza il parametro chiave sin_array
np.savez('w3codebox.npz', a, b, sin_array = c)
r = np.load('w3codebox.npz')
print(r.files) # visualizzare i nomi degli array
print(r['arr_0']) # array a
print(r['arr_1']) # array b
print(r['sin_array']) # array c
['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()
np.loadtxt(FILENAME, dtype=int, delimiter=' ')
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")
import numpy as np
a = np.array([1,2,3,4,5])
np.savetxt('out.txt',a)
b = np.loadtxt('out.txt')
print(b)
[1. 2. 3. 4. 5.]
import numpy as np
a=np.arange(0,10,0.5).reshape(4,-1)
np.savetxt("out.txt",a,fmt="%d",delimiter=",") # Salva come intero, separato da virgola
b = np.loadtxt("out.txt",delimiter=",") # load anche specificare come separatore la virgola
print(b)
[[0. 0. 1. 1. 2.]]
[2. 3. 3. 4. 4.]
[5. 5. 6. 6. 7.]
[7. 8. 8. 9. 9.]]