Float Array einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

hi,

kann mir jemand sagen was der schnellste weg ist eine Ascii datei als Float array einzulesen? Interessant währe hier das direkt beim einlesen der Datentyp flot ist so das ich später keine Typenwandlung mehr machen muss.

Danke im vorraus.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Wenn du verrätst wie die Datei aussieht und was du für ein Ergebnis erwartest ;-)
Benutzt du numpy?
Das Leben ist wie ein Tennisball.
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

Natürlich :-)

Also die Datei is eine 3 spaltige Werte Tabelle vom typ float. Diese möchte ich möglichst schnell einladen.

zzt benutze ich die standart Open() fuktion. Welche die Werte allerdings als String einläd, was für mich heißt ich muss sie später wandeln. Das kostet zeit.

Wie macht ihr sowas? Welche variante is eurer Erfahrung nach die schnellste um solche daten einzuladen und als float im Python vorliegen zu haben

Nein noch benutze ich kein Numpy. Welche funktion benutz du da speziell? kleines Beispiel?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Eine Umwandlung musst du auf jeden Fall machen, wenn die Daten als Strings vorliegen. Ich würde die Datei einfach öffnen und dann so einlesen:

Code: Alles auswählen

[map(float, line.split()) for line in fp.readlines()]
Ich bin davon ausgegangen, dass die Daten so vorliegen:

Code: Alles auswählen

1.0 2.0 4.0
3.0 6.0 9.0
andernfalls muss das "split" ein wenig angepasst werden.

Ich bin mir relativ sicher, dass es mit numpy noch kürzer (vielleicht auch schneller) geht, da wird sich wahrscheinlich noch der ein oder andere melden.

Ach ja: und das. ;-)
Das Leben ist wie ein Tennisball.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Code: Alles auswählen

data = numpy.loadtxt("filename.dat")
Gibt Rudel von kwargs dazu.

HTH
Christian
BlackJack

@EyDu: Das `readlines()` würde ich weglassen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

BlackJack hat geschrieben:@EyDu: Das `readlines()` würde ich weglassen.
Da hast du recht. War aber auch noch früh :roll:
Das Leben ist wie ein Tennisball.
Antworten