.dat-Datei einladen

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
Wallower
User
Beiträge: 13
Registriert: Montag 17. Oktober 2022, 13:12

Guten Abend,

ich habe eine .dat-Datei, bei der die ersten 6 Zeilen überfüssig und in jeder Zeile die ersten 7 Zeichen Leerzeichen sind:

Code: Alles auswählen

       ...
       6 Zeilen bla bla
       ...
       1.000E-02 2.44E+00 6.73E-02 1.38E+02 0.00E+00 0.00E+00 1.40E+02 1.38E+02
       1.500E-02 1.60E+00 8.41E-02 4.57E+01 0.00E+00 0.00E+00 4.74E+01 4.58E+01
       ... usw.
Ideal wäre, wenn ich am Ende ein Array oder DataFrame mit float-Elementen wie folgt hätte:

Code: Alles auswählen

[[0.01  2.44 0.0673 138.0 0.0 0.0 140.0 138.0]
 [0.015 1.6  0.0841 45.7  0.0 0.0 47.4  45.8 ]
 ... ]
(Das i-Tüpfelchen ist dann, dass in jeder Array-Zeile nur jeweils der 1., 3. und die beiden letzten Werte einer Zeile stehen.). Was ich bisher geschafft habe:

Code: Alles auswählen

daten = np.loadtxt(datei.dat', dtype=str, delimiter=' ', skiprows=5)
daten = daten[:,7:] 
Mit dem Resultat:

Code: Alles auswählen

[['1.000E-02' '2.44E+00' '6.73E-02' '1.38E+02' '0.00E+00' '0.00E+00'
  '1.40E+02' '1.38E+02']
 ['1.500E-02' '1.60E+00' '8.41E-02' '4.57E+01' '0.00E+00' '0.00E+00'
  '4.74E+01' '4.58E+01']
  ... ]
Danke im Voraus!
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Ich bin mir leider nicht sicher, was an deinem Code wirklich aus deinem programm kommt und was du nachträglich editiert hast - denn so wie ich das sehe gibt es da einen Problem mit der Syntax.

Warum liest du die Werte alle explizit und erzwungen als Zeichenketten ein?
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn man es richtig macht und nicht so kompliziert, dann ist es völlig egal, wie viele Leerzeichen irgendwo stehen:

Code: Alles auswählen

daten = np.loadtxt("datei.dat", skiprows=5)
Wallower
User
Beiträge: 13
Registriert: Montag 17. Oktober 2022, 13:12

... dieser Beitrag kann gelöscht werden ...
Zuletzt geändert von Wallower am Mittwoch 2. November 2022, 22:14, insgesamt 1-mal geändert.
Wallower
User
Beiträge: 13
Registriert: Montag 17. Oktober 2022, 13:12

Sirius3 hat geschrieben: Mittwoch 2. November 2022, 22:02 Wenn man es richtig macht und nicht so kompliziert, dann ist es völlig egal, wie viele Leerzeichen irgendwo stehen:

Code: Alles auswählen

daten = np.loadtxt("datei.dat", skiprows=5)
Ach krass! Da kommt ja dann wirklich genau, was ich will :-o

Wie cool, danke!
Antworten