Importieren von großen tab-delimited .txt-Datei in Python
Ich habe eine tab-getrennte .txt Datei, die ich versuche zu importieren in ein matrix-array in Python mit dem gleichen format wie die text-Datei sieht wie unten gezeigt aus:
123088 266 248 244 266 244 277
123425 275 244 241 289 248 231
123540 156 654 189 354 156 987
Hinweis: es gibt viele, viele weitere Zeilen von dem Zeug oben (etwa 200) , möchte ich weitergeben in Python und pflegen Sie die gleiche Formatierung beim erstellen einer matrix (array) aus.
Den aktuellen code, ich habe für diese ist:
d = {}
with open('file name', 'rb') as csv_file:
csv_reader = csv.reader(csv_file, delimiter='\t')
for row in csv_reader:
d[row[0]] = row[1:]
Denen es etwas tut, was ich brauche, es zu tun, aber nicht mein Ziel. Ich möchte bis zum Ende code, den ich geben kann, in Druck - (d[0,3]) und es wird ausspucken 248.
InformationsquelleAutor user2464402 | 2013-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste laden Sie es in ein Wörterbuch, was nicht geht, um die Liste der Listen, die Sie möchten.
Es ist tot einfach zu bedienen das CSV-Modul zu generieren, die eine Liste von Listen wie diese:
Dass würde Ihnen eine Liste von Listen von strings, so dass, wenn Sie wollten, erhalten Sie zahlen, müssten Sie konvertieren in int.
Sagte, dass, wenn Sie eine große Matrix (oder tun jede Art von numerischen Berechnungen), sollten Sie mit so etwas wie NumPy oder pandas. Wenn Sie wollte NumPy, Sie könnte tun
Als bonus, NumPy-arrays erlauben es, schnelle Vektor - /matrix-Operationen. (Beachten Sie auch, dass
d[0][2]
würde die Arbeit mit den NumPy-array zu).np.loadtxt
Dateien verarbeiten, die mit beiden Nummern und text?an diesem Punkt würde ich mit dem Schalter pandas, es wird nur Griff es automatisch. Sie können auch die
converters
keyword argument, aber Sie werden am Ende mit einem Objekt-Arrays dtype insgesamt.InformationsquelleAutor
Versuchen Sie dies:
print d[0][1]
drucken 266.print d[0][2]
(denken Sie daran, Ihre arrays sind 0-basiert) werden gedruckt 248.Zur Ausgabe der Daten im gleichen format wie Ihre Eingabe:
Können Sie ein Beispiel für die Ergebnisse und die gewünschten Ergebnisse?
print(d)
oderprint d
sollte Ihnen die gesamte Liste der Listen. Jede Zeile aus der original-Datei wird eine Liste von Werten, und jede dieser Listen Hinzugefügt wird, d, der aus einer Liste selbstwenn Sie möchte nur eine Ausgabe in dem gleichen format wie die original-Eingabe, siehe mein edit oben
InformationsquelleAutor
Nicht sicher, wie man
print(d[0,3])
Ausgabe 248, aber das machtprint(d[0][3])
Ausgabe 248. Ersten StackOverflow-Antwort so IDK, wie Sie zeigen, dass die letzten zwei Zeilen in meinen code-block sind eigentlich nur eine einzige lange Zeile.InformationsquelleAutor