Is er een manier om een NumPy-array in een CSV-bestand te dumpen? Ik heb een 2D NumPy-array en moet die dumpen in een voor mensen leesbaar formaat.
numpy.savetxt
slaat een array op in een tekst bestand.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
tofile
is een handige functie om dit te doen:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
De man page heeft een aantal nuttige opmerkingen:
Dit is een gemaksfunctie voor het snel opslaan van array-gegevens. Informatie over endianness en precisie gaat verloren, dus deze methode is niet een goede keuze voor bestanden bedoeld om data te archiveren of data te transporteren tussen machines met verschillende endianness. Sommige van deze problemen kunnen worden opgelost door de gegevens als tekstbestanden uit te voeren, ten koste van snelheid en bestandsgrootte.
Opmerking. Deze functie produceert geen csv-bestanden met meerdere regels, maar slaat alles op één regel op.
Als je je numpy array (bijv. uw_array = np.array([[1,2],[3,4]])
) in één cel wilt opslaan, zou je die eerst met uw_array.tolist()
kunnen omzetten.
Sla het dan op de normale manier op in één cel, met delimiter=';'
en de cel in het csv-bestand ziet er dan zo uit [[1, 2], [2, 4]]
Dan zou je je array als volgt kunnen herstellen:
uw_array = np.array(ast.literal_eval(cell_string))