Seite 1 von 1

.dat-Datei einladen

Verfasst: Mittwoch 2. November 2022, 20:56
von Wallower
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!

Re: .dat-Datei einladen

Verfasst: Mittwoch 2. November 2022, 21:40
von sparrow
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?

Re: .dat-Datei einladen

Verfasst: Mittwoch 2. November 2022, 22:02
von Sirius3
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)

Re: .dat-Datei einladen

Verfasst: Mittwoch 2. November 2022, 22:11
von Wallower
... dieser Beitrag kann gelöscht werden ...

Re: .dat-Datei einladen

Verfasst: Mittwoch 2. November 2022, 22:13
von Wallower
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!