2009-11-25 21 views
11

Wie kann ich ein Array zu Python (numpy.arry) aus einer Datei importieren und auf diese Weise muss die Datei geschrieben werden, wenn es nicht bereits vorhanden ist.Importieren eines Arrays in Python

Speichern Sie zum Beispiel eine Matrix in eine Datei und laden Sie sie dann zurück.

Antwort

19

Überprüfen Sie den Eintrag auf der numpy example list. Hier ist der Eintrag auf .loadtxt()

>>> from numpy import * 
>>> 
>>> data = loadtxt("myfile.txt")      # myfile.txt contains 4 columns of numbers 
>>> t,z = data[:,0], data[:,3]       # data is 2D numpy array 
>>> 
>>> t,x,y,z = loadtxt("myfile.txt", unpack=True)     # to unpack all columns 
>>> t,z = loadtxt("myfile.txt", usecols = (0,3), unpack=True)  # to select just a few columns 
>>> data = loadtxt("myfile.txt", skiprows = 7)     # to skip 7 rows from top of file 
>>> data = loadtxt("myfile.txt", comments = '!')     # use '!' as comment char instead of '#' 
>>> data = loadtxt("myfile.txt", delimiter=';')     # use ';' as column separator instead of whitespace 
>>> data = loadtxt("myfile.txt", dtype = int)      # file contains integers instead of floats 
+0

Hallo, danke für die Antwort, ich kann nur zweifeln, da er den Pfad definiert, wo die Datei – ricardo

0

Werfen Sie einen Blick auf SciPy cookbook. Es sollte Ihnen eine Vorstellung von grundlegenden Methoden zum Importieren/Exportieren von Daten geben. Wenn Sie die Dateien aus Ihren eigenen Python-Programmen speichern/laden, sollten Sie auch das Modul Pickle oder cPickle in Betracht ziehen.

+1

Beizen ist ungeeignet für Arrays - während Sie es tun können, wird es langsam wie die Hölle sein. Verwenden Sie np.save() zum Speichern im .npy-Format oder np.savez() zum Speichern eines gezippten Archivs mit mehreren Arrays. – dwf

1

(ich weiß, die Frage ist alt, aber ich denke, das ist für Leute mit ähnlichen Fragen als Referenz gut sein könnte)

Wenn Sie Daten aus einer ASCII/Textdatei geladen werden sollen (was den Vorteil hat oder wobei mehr oder weniger Menschen lesbare und leicht in anderer Software zu analysieren), numpy.loadtxt wahrscheinlich ist, was Sie wollen:

Wenn Sie nur wollen schnell zum speichern und laden numpy Arrays/Matrizen zu und von a Datei, werfen Sie einen Blick auf numpy.save und numpy.load:

7

Eine weitere Option ist numpy.genfromtxt, zB:

import numpy as np 
data = np.genfromtxt("myfile.dat",delimiter=",") 

Dadurch wird data ein numpy Array mit so vielen Zeilen und Spalten wie in Ihrer Datei

1

Wenn Sie in Python eine leere Python-Liste als numpy.array speichern und dann in einer Datei speichern, sie dann zurückladen und in eine Liste zurück konvertieren, werden einige Konvertierungstricks ausgeführt. Die Verwirrung ist, weil Python Listen gar nicht das Gleiche wie numpy.arrays sind:

import numpy as np 
foods = ['grape', 'cherry', 'mango'] 
filename = "./outfile.dat.npy" 
np.save(filename, np.array(foods)) 
z = np.load(filename).tolist() 
print("z is: " + str(z)) 

Diese Drucke:

z is: ['grape', 'cherry', 'mango'] 

, die auf der Festplatte als Dateinamen gespeichert ist: outfile.dat.npy

Die Wichtige Methoden sind hier die Umrechnungsfunktionen tolist() und np.array(...).

Verwandte Themen