Hallo,
ich weiss nicht, wie ich eine Matrix aus einer .txt-Datei in Python einlesen kann.
Ich habe eine Matrix all_log im .txt-Format, aus dieser moechte ich Daten extrahieren und eine neue Matrix daraus erstellen. In "R" ging das alles recht leicht und mit wenig Code, aber bei Python weiss ich nicht, wie ich das genau bewerkstelligen soll. Wenn ich mit .read() die Datei einlese, bekomme ich einen String. Dieser String ist dann aber so verkettet, das es fuer mich keinen Sinn macht, Substrings zu bilden. Gibt es nicht irgendeinen Befehl, der Python sagt, dass die Datei als Matrix eingelesen werden soll?
Ratlose Gruesse, Katharina
Matrix in Python einlesen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Steht doch da!DasIch hat geschrieben:Wie sieht diese Matrix aus?
SCNRMonsi hat geschrieben: Ich habe eine Matrix all_log im .txt-Format
Alternativ gibt es doch zig Python-Bindings / Implementierungen von R. Einfach mal bei google suchen - die ersten Treffer sehen da recht vielversprechend aus.
Zuletzt geändert von Hyperion am Donnerstag 2. April 2009, 16:35, insgesamt 1-mal geändert.
- b.esser-wisser
- User
- Beiträge: 272
- Registriert: Freitag 20. Februar 2009, 14:21
- Wohnort: Bundeshauptstadt B.
Code: Alles auswählen
import mymodule
the_magic_python_matrix = mymodule.Matrix.from_file(FILENAME, mymodule.TXTFORMAT)
scnr, Jörg
ps.: Falls du wirklich nicht verstehst, warum dir keiner hilft: wir haben keine Ahnung was du machst/vorhast/machen willst, d.h. Welche module du kennst/lernen willst (z.B. pylab, numpy) was du mit der "Matrix" machen willst (plotten, normalisieren, etc.)
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
Leute, das ist unhöflich: Die Frage wurde unpräzise gestellt - es wurde nachgehakt - gut ist.
Ich weiß leider nicht, wie in R eine Matrix repräsentiert wird. Für Python kannst Du z. B. eine zweidimensionale Liste verwenden.
Es habe matrix.txt den folgenden Inhalt.
Dann kann daraus auf die folgende Art eine zweidimensionale Liste gelesen werden.
Es habe matrix.txt den folgenden Inhalt.
Code: Alles auswählen
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Code: Alles auswählen
from pprint import pprint
matrix = []
for line in open("matrix.txt").readlines():
matrix.append(line.split())
pprint(matrix)
# [['1', '2', '3', '4'],
# ['5', '6', '7', '8'],
# ['9', '10', '11', '12'],
# ['13', '14', '15', '16']
Man kann über Dateiobjekte (heißt das so?) direkt iterieren: Da bietet sich übrigens das with-statement an.
Code: Alles auswählen
for line in open('...'): pass
Ich war mir nicht im klaren darueber, dass meine Fragestellung unpraezise war. Um die Verwirrung aufzuloesen: ich habe eine Matrix mit Rohdaten von einem Experiment, unter anderem Reaktionszeiten. Diese will ich einlesen, um dann die RTS zu extrahieren und daraus die Mittelwerte zu berechnen. Dann sollen die mittleren RTs in einer neue Matrix mit anderen Variablen kombiniert werden. Numpy ist mir bekannt, ich wusste nur nicht, wie ich es dafuer nutzen kann. Mit numpy.loadtxt() kann ich eine Matrix einlesen. Hab also gefunden was ich gesucht habe.
Gruesse, Katharina
Gruesse, Katharina
Hoi
Als Tipps fürs nächste Mal: Abkürzungen nur verwenden, wenn sie allgemein bekannt sind oder von Dir eingeführt wurden und auch erklären worum es geht. Ich würde z. B. unstellen, dass der Mittelwert das arithmetische Mittel dieser Werte ist - aber selbstverständlich ist das keineswegs. Und ohne solches Wissen, kann man Dir eigentlich auch nicht sage, wie Die Lösung lautet. Ok, das ist jetzt haarspalterisch, aber ich hoffe es kam rüber, was ich eigentlich sagen wollte *kopfkratz*.
Gruß,
Christian
Das ist schön, aber selbst, wenn Du hier im Forum Experten für Dein Fach findest: Jeder hier erwartet Probleme rund um die Programmierung von Python und wenn Du etwas vom Thema abweichst, mußt Du es einführen. Das ist quasi, wie beim Vortrag vor Laien. Wenn Du z. B. von RTs sprichst und nicht sagst, worum es *genau* geht, wie das Format *genau* aussieht und wo Du *genau* hinwillst, wird man Dir im Zweifel nicht weiterhelfen können.Monsi hat geschrieben:Hab also gefunden was ich gesucht habe.
Als Tipps fürs nächste Mal: Abkürzungen nur verwenden, wenn sie allgemein bekannt sind oder von Dir eingeführt wurden und auch erklären worum es geht. Ich würde z. B. unstellen, dass der Mittelwert das arithmetische Mittel dieser Werte ist - aber selbstverständlich ist das keineswegs. Und ohne solches Wissen, kann man Dir eigentlich auch nicht sage, wie Die Lösung lautet. Ok, das ist jetzt haarspalterisch, aber ich hoffe es kam rüber, was ich eigentlich sagen wollte *kopfkratz*.
Gruß,
Christian