HOWTO · NumPy
Scrivere un array NumPy in CSV in Python
Questo tutorial mostra come salvare un array numpy in un file csv
In questo tutorial, discuteremo come memorizzare un array numpy in un file CSV.
Usa un DataFrame pandas per salvare un array NumPy in un file CSV
In questo metodo, prima salveremo l’array in un DataFrame pandas e poi convertiremo questo DataFrame in un file CSV.
Il codice seguente mostra come ottenere questo risultato.
import pandas as pd
import numpy as np
a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
pd.DataFrame(a).to_csv("sample.csv")
La funzione pd.DataFrame memorizza l’array in un DataFrame, e lo esportiamo semplicemente in un file CSV usando la funzione to_csv().
Usa la funzione numpy.savetxt() per salvare un array NumPy in un file CSV
La funzione savetxt() del modulo numpy può salvare un array in un file di testo. Possiamo specificare il formato del file, il carattere delimitatore e molti altri argomenti per ottenere il risultato finale nel formato desiderato.
Nel codice seguente, salviamo un array in un file CSV utilizzando questa funzione.
import numpy as np
a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.savetxt("sample.csv", a, delimiter=",")
Usa la funzione tofile() per salvare un array NumPy in un file CSV
La funzione tofile() ci permette di scrivere un array in un file di testo o binario. Tuttavia, questo metodo presenta molti inconvenienti. È più simile a una comoda funzione per l’archiviazione rapida dei dati dell’array. La precisione delle informazioni viene persa poiché memorizza tutto in una singola riga, quindi questo metodo non è una buona scelta per i file destinati all’archiviazione dei dati. Alcuni di questi problemi possono essere risolti inviando i dati come file di testo a scapito della velocità e delle dimensioni del file.
Il codice seguente mostra l’utilizzo di questa funzione.
import numpy as np
a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a.tofile("sample.csv", sep=",")
Usa i metodi di gestione dei file per salvare un array NumPy in un file CSV
Possiamo utilizzare i metodi tradizionali di gestione dei file, ma non è consigliabile utilizzarli poiché tali metodi richiedono molte modifiche a seconda della forma dell’array e possono consumare molta memoria.
Il codice seguente mostra un esempio di questo metodo.
a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
csv_rows = ["{},{},{}".format(i, j, k) for i, j, k in a]
csv_text = "\n".join(csv_rows)
with open("sample.csv", "w") as f:
f.write(csv_text)
Spacchettiamo l’array in una lista di righe e poi restituiamo una singola stringa unendoci a questo elenco utilizzando la funzione join(). Quindi scriviamo questa stringa in un file CSV.