mit einer Kopie-n-Paste aus dem WY Link ich eine Datei erstellen mit
-----------------------------------------------------------------------------
PRES HGHT TEMP DWPT RELH MIXR DRCT SKNT THTA THTE THTV
hPa m C C % g/kg deg knot K K K
-----------------------------------------------------------------------------
1000.0 116
971.0 357 8.0 6.0 87 6.07 200 5 283.5 300.6 284.6
956.0 487 7.2 5.0 86 5.75 215 18 284.0 300.2 285.0
942.1 610 8.0 5.5 84 6.06 230 30 286.0 303.2 287.1
933.0 691 8.6 5.9 83 6.28 233 30 287.4 305.3 288.5
925.0 763 8.0 4.9 81 5.90 235 30 287.5 304.4 288.5
908.2 914 7.2 3.2 76 5.32 245 29 288.2 303.5 289.1
...
ich es als ein 2D-Array geladen werden kann mit:
In [1]: data = np.genfromtxt('stack46636938.txt',skip_header=5)
In [2]: data.shape
Out[2]: (35, 11)
In [3]: data[:3]
Out[3]:
array([[ 971. , 357. , 8. , 6. , 87. , 6.07, 200. ,
5. , 283.5 , 300.6 , 284.6 ],
[ 956. , 487. , 7.2 , 5. , 86. , 5.75, 215. ,
18. , 284. , 300.2 , 285. ],
[ 942.1 , 610. , 8. , 5.5 , 84. , 6.06, 230. ,
30. , 286. , 303.2 , 287.1 ]])
Beachten Sie, dass ich die Linie übersprungen mit nur zwei Werten.
Jetzt kann ich
p = data[:,0]
ich auch die auspacken Option
In [7]: p,z,t = np.genfromtxt('stack46636938.txt',skip_header=5,unpack=True,usecols=range(3))
Dies entspricht der Verwendung von Python mit der Transponierung des 2D-Arrays Auspacken verwenden:
In [9]: p,z,t = data[:,:3].T
I könnten auch die Daten als strukturierte Array laden mit:
In [11]: names = ' PRES HGHT TEMP DWPT RELH MIXR DRCT SKNT THT
...: A THTE THTV'.split()
In [12]: names
Out[12]:
['PRES',
'HGHT',
'TEMP',
'DWPT',
....
'THTV']
In [13]: data = np.genfromtxt('stack46636938.txt', skip_header=5, dtype=None, names=names)
In [14]: data[:3]
Out[14]:
array([(971. , 357, 8. , 6. , 87, 6.07, 200, 5, 283.5, 300.6, 284.6),
(956. , 487, 7.2, 5. , 86, 5.75, 215, 18, 284. , 300.2, 285.),
(942.1, 610, 8. , 5.5, 84, 6.06, 230, 30, 286. , 303.2, 287.1)],
dtype=[('PRES', '<f8'), ('HGHT', '<i4'), ('TEMP', '<f8'), ('DWPT', '<f8'), ('RELH', '<i4'), ('MIXR', '<f8'), ('DRCT', '<i4'), ('SKNT', '<i4'), ('THTA', '<f8'), ('THTE', '<f8'), ('THTV', '<f8')])
und Zugang per Namen
In [15]: data['PRES']
Out[15]:
array([ 971. , 956. , 942.1, 933. , 925. , 908.2, 900. , 875. ,
850. , 842.8, 827. , 811.4, 792. , 786. , 781. , 776. ,
752.1, 736. , 726. , 724.1, 721. , 714. , 710. , 706. ,
703. , 701. , 700. , 690. , 671. , 670.8, 669. , 666. ,
662. , 645.4, 639. ])
loadtxt
auch mit der rechten Reihe arbeitet überspringen und entpacken:
np.loadtxt('stack46636938.txt',skiprows=5,unpack=True)
Wenn die kurze Reihe enthalten ist, ich einen Fehler. Es beginnt zwei Spalten erwartet und dann Objekte, wenn es 11.
bekommt Warum können Sie nicht mit einem 2D-Array arbeiten? – Antimony
Wenn Sie Hilfe benötigen, müssen Sie einige Daten anzeigen. –
Das sollte gut funktionieren, daher ist Ihre Datendatei wahrscheinlich inkompatibel. Laut dem Kommentar von Coldspeed müssten wir einige (Teil der) Datendatei sehen, um zu sehen, was das eigentliche Problem ist. – Evert