Er det en måte å dumpe en NumPy-matrise i en CSV-fil? Jeg har en 2D NumPy-matrise og trenger å dumpe den i menneskelig lesbart format.
numpy.savetxt
lagrer en matrise i en tekstfil.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
tofile
er en praktisk funksjon for å gjøre dette:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
Man-siden har noen nyttige notater:
Dette er en praktisk funksjon for rask lagring av matrisedata. Informasjon om endianness og presisjon går tapt, så denne metoden er ikke et godt valg for filer som er beregnet på å arkivere data eller transportere data mellom maskiner med forskjellig endianness. Noen av disse problemene kan overvinnes ved å sende ut dataene som tekstfiler, på bekostning av hastighet og filstørrelse.
Merk. Denne funksjonen produserer ikke csv-filer med flere linjer, den lagrer alt på én linje.
Hvis du vil lagre din numpy array (f.eks. din_array = np.array([[1,2],[3,4]])
) til en celle, kan du konvertere den først med din_array.tolist()
.
Lagre den deretter på vanlig måte i én celle med delimiter=';'
.
og cellen i csv-filen vil da se slik ut [[1, 2], [2, 4]]
.
Deretter kan du gjenopprette matrisen din slik:
your_array = np.array(ast.literal_eval(cell_string))