Tweet Condividi Condividi

Ultimo aggiornamento del 19 agosto 2020

Sviluppare modelli di apprendimento automatico in Python spesso richiede l’uso di array NumPy.

Gli array NumPy sono strutture dati efficienti per lavorare con i dati in Python, e i modelli di apprendimento automatico come quelli della libreria scikit-learn, e i modelli di apprendimento profondo come quelli della libreria Keras, si aspettano dati di input nel formato degli array NumPy e fanno previsioni nel formato degli array NumPy.

Come tale, è comune aver bisogno di salvare gli array NumPy su file.

Per esempio, potreste preparare i vostri dati con trasformazioni come lo scaling e aver bisogno di salvarli su file per un uso successivo. Potresti anche usare un modello per fare previsioni e avere bisogno di salvare le previsioni su file per un uso successivo.

In questo tutorial, scoprirai come salvare i tuoi array NumPy su file.

Dopo aver completato questo tutorial, saprai:

  • Come salvare gli array NumPy in file in formato CSV.
  • Come salvare gli array NumPy in file in formato NPY.
  • Come salvare gli array NumPy in file compressi in formato NPZ.

Inizia il tuo progetto con il mio nuovo libro Machine Learning Mastery With Python, che include tutorial passo dopo passo e i file di codice sorgente Python per tutti gli esempi.

Iniziamo.

Come salvare un array NumPy su file per l'apprendimento automatico

Come salvare un array NumPy su file per l’apprendimento automatico
Foto di Chris Combe, alcuni diritti riservati.

Panoramica del tutorial

Questo tutorial è diviso in tre parti; esse sono:

  1. Salvare NumPy Array su file .CSV File (ASCII)
  2. Salvare NumPy Array in .NPY File (binario)
  3. Salvare NumPy Array in .NPZ File (compresso)

Salvare NumPy Array in .CSV File (ASCII)

Il formato di file più comune per la memorizzazione di dati numerici nei file è il formato di variabili separate da virgola, o CSV in breve.

E’ molto probabile che i vostri dati di allenamento e i dati di input dei vostri modelli siano memorizzati in file CSV.

Può essere conveniente salvare i dati in file CSV, come le previsioni di un modello.

Puoi salvare i tuoi array NumPy in file CSV usando la funzione savetxt(). Questa funzione prende un nome di file e un array come argomenti e salva l’array in formato CSV.

È inoltre necessario specificare il delimitatore; questo è il carattere utilizzato per separare ogni variabile nel file, più comunemente una virgola. Questo può essere impostato tramite l’argomento “delimiter”.

1.1 Esempio di salvataggio di un array NumPy in un file CSV

L’esempio seguente dimostra come salvare un singolo array NumPy in formato CSV.

1
2
3
4
5
6
7

# salva numpy array come file csv
from numpy import asarray
from numpy import savetxt
# define data
data = asarray(])
# save to csv file
savetxt(‘data.csv’, data, delimiter=’,’)

L’esecuzione dell’esempio definirà un array NumPy e lo salverà nel file ‘data.csv’.

L’array ha una singola riga di dati con 10 colonne. Ci aspettiamo che questi dati vengano salvati in un file CSV come una singola riga di dati.

Dopo aver eseguito l’esempio, possiamo controllare il contenuto di ‘data.csv’.

Dovremmo vedere quanto segue:

1
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.0000000000000000000000e+00,8.0000000000000000000000e+00,9.000000000000000000e+00

Possiamo vedere che i dati sono salvati correttamente come una singola riga e che i numeri in virgola mobile nell’array sono stati salvati con piena precisione.

1.2 Esempio di caricamento di un array NumPy da un file CSV

Possiamo caricare successivamente questi dati come array NumPy utilizzando la funzione loadtext() e specificando il nome del file e lo stesso delimitatore di virgola.

L’esempio completo è elencato di seguito.

1
2
3
4
5
6

# caricare array numpy da file csv
from numpy import loadtxt
# caricare array
dati = loadtxt(‘data.csv’, delimiter=’,’)
# print the array
print(data)

L’esecuzione dell’esempio carica i dati dal file CSV e ne stampa il contenuto, che corrisponde alla nostra singola riga con 10 colonne definita nell’esempio precedente.

1

Save NumPy Array to .NPY File (binario)

A volte abbiamo molti dati in array NumPy che vogliamo salvare in modo efficiente, ma che abbiamo bisogno di usare solo in un altro programma Python.

Pertanto, possiamo salvare gli array NumPy in un formato binario nativo che è efficiente sia per salvare che per caricare.

Questo è comune per i dati di input che sono stati preparati, come i dati trasformati, che dovranno essere usati come base per testare una serie di modelli di apprendimento automatico in futuro o per eseguire molti esperimenti.

Il file .npy è appropriato per questo caso d’uso e viene chiamato semplicemente “formato NumPy”.

Questo può essere ottenuto usando la funzione save() NumPy e specificando il nome del file e l’array che deve essere salvato.

2.1 Esempio di salvataggio di un array NumPy in un file NPY

L’esempio seguente definisce il nostro array bidimensionale NumPy e lo salva in un file .npy.

1
2
3
4
5
6
7

# salvare array numpy come file npy
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# save to npy file
save(‘data.npy’, data)

Dopo aver eseguito l’esempio, si vedrà un nuovo file nella directory con il nome ‘data.npy’.

Non puoi ispezionare il contenuto di questo file direttamente con il tuo editor di testo perché è in formato binario.

2.2 Esempio di caricamento di un array NumPy da un file NPY

Puoi caricare questo file come array NumPy in seguito usando la funzione load().

L’esempio completo è riportato qui sotto.

1
2
3
4
5
6

# caricare array numpy da file npy
from numpy import load
# caricare array
dati = load(‘data.npy’)
# stampare l’array
print(data)

L’esecuzione dell’esempio caricherà il file e ne stamperà il contenuto, confermando che sia stato caricato correttamente e che il contenuto corrisponde a quello che ci aspettiamo nello stesso formato bidimensionale.

1
]

Save NumPy Array to .NPZ File (compresso)

A volte, prepariamo dati per la modellazione che devono essere riutilizzati in più esperimenti, ma i dati sono grandi.

Si potrebbe trattare di array NumPy pre-elaborati come un corpus di testo (interi) o una collezione di dati di immagini riscalate (pixel). In questi casi, è auspicabile sia salvare i dati su file, ma anche in un formato compresso.

Questo permette di ridurre gigabyte di dati a centinaia di megabyte e permette una facile trasmissione ad altri server di cloud computing per lunghe esecuzioni di algoritmi.

Il formato di file .npz è appropriato per questo caso e supporta una versione compressa del formato nativo dei file NumPy.

La funzione savez_compressed() NumPy permette di salvare più array NumPy in un singolo file .npz compresso.

3.1 Esempio di salvataggio di un array NumPy in un file NPZ

Possiamo usare questa funzione per salvare il nostro singolo array NumPy in un file compresso.

L’esempio completo è riportato di seguito.

1
2
3
4
5
6
7

# salva numpy come file npz
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# savez_compressed(‘data.npz’, data)

L’esecuzione dell’esempio definisce l’array e lo salva in un file in formato numpy compresso con il nome ‘data.npz’.

Come per il formato .npy, non possiamo controllare il contenuto del file salvato con un editor di testo perché il formato del file è binario.

3.2 Esempio di caricamento di un array NumPy da un file NPZ

Possiamo caricare questo file successivamente usando la stessa funzione load() della sezione precedente.

In questo caso, la funzione savez_compressed() supporta il salvataggio di più array in un singolo file. Pertanto, la funzione load() può caricare più array.

Gli array caricati sono restituiti dalla funzione load() in un dict con i nomi ‘arr_0’ per il primo array, ‘arr_1’ per il secondo, e così via.

L’esempio completo di caricamento del nostro singolo array è elencato di seguito.

1
2
3
4
5
6
7
8

# caricare array numpy da file npz
from numpy import load
# caricare dict di array
dict_data = load(‘data.npz’)
# estrae il primo array
data = dict_data
# stampa l’array
print(data)

L’esempio carica il file numpy compresso che contiene un dizionario di array, poi estrae il primo array che abbiamo salvato (ne abbiamo salvato solo uno), poi stampa il contenuto, confermando che i valori e la forma dell’array corrispondono a quello che abbiamo salvato all’inizio.

1
]

Altre letture

Questa sezione fornisce altre risorse sull’argomento se vuoi approfondire.

Posts

  • Come caricare i dati di Machine Learning in Python
  • Una delicata introduzione agli array NumPy in Python
  • Come indicizzare, affettare e rimodellare gli array NumPy per il Machine Learning

API

  • numpy.savetxt API
  • numpy.save API
  • numpy.savez API
  • numpy.savez_compressed API
  • numpy.load API
  • numpy.loadtxt API

Summary

In questo tutorial, hai scoperto come salvare i tuoi array NumPy su file.

In particolare, hai imparato:

  • Come salvare gli array NumPy in file in formato CSV.
  • Come salvare gli array NumPy in file in formato NPY.
  • Come salvare gli array NumPy in file compressi in formato NPZ.

Hai qualche domanda?
Poni le tue domande nei commenti qui sotto e farò del mio meglio per rispondere.

Scopri il Machine Learning veloce in Python!

Master Machine Learning With Python

Sviluppa i tuoi modelli in pochi minuti

…con poche righe di codice scikit-learn

Impara come nel mio nuovo Ebook:
Machine Learning Mastery With Python

Comprende tutorial di auto-apprendimento e progetti end-to-end come:
Caricamento dati, visualizzazione, modellazione, tuning, e molto altro….

Finalmente porta l’apprendimento automatico a
i tuoi progetti

Skip the Academics. Solo risultati.

Vedi cosa c’è dentro

Tweet Share Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.