Scrivere un array NumPy in CSV in Python

Manav Narula 30 gennaio 2023
  1. Usa un DataFrame pandas per salvare un array NumPy in un file CSV
  2. Usa la funzione numpy.savetxt() per salvare un array NumPy in un file CSV
  3. Usa la funzione tofile() per salvare un array NumPy in un file CSV
  4. Usa i metodi di gestione dei file per salvare un array NumPy in un file CSV
Scrivere un array NumPy in CSV in Python

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.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - NumPy Array