Zeitstempel in Numpy
Ich versuche, mit wrf-python Daten aus einer netcdf-Datei zu extrahieren. Die Daten sind für jede Stunde. Das Datum wird als Zahl und nicht als Kalenderdatum extrahiert. Zuerst extrahiere ich die Daten, konvertiere sie in ein flaches np-Array und versuche dann, die Datei zu speichern. Das Format wird als '% s' gespeichert.
np.savetxt((stn + 'WRF_T2_T10_WS_WD.csv'), np.transpose(arr2D), %s, delimiter=',', header=headers, comments='')
es sieht aus wie das:
aber es muss so aussehen:
Vielen Dank
Antworten
Konventionell werden Daten ab dem 1. Januar 1970 häufig als Versatz in Sekunden gespeichert
Für die Konvertierung von Sekunden schlägt diese Antwort Python Numpy Loadtxt - Konvertieren des Unix-Zeitstempels vor, sie durch Ändern ihres Datentyps zu konvertieren (sollte so effizient wie möglich sein, da es zeilenweisen Schleifen, Kopieren von Daten usw. ausweicht).
x = np.asarray(x, dtype='datetime64[s]')
Der E+18Postfix impliziert jedoch, dass Ihre Zeitstempel, wenn Sie wirklich ein Datum haben, in Nanosekunden angegeben sind und datetime64[ns]möglicherweise für Sie funktionieren
import time
import numpy as np
>>> a = np.array([time.time() * 10**9]) # epoch seconds to ns
>>> a # example array
array([1.60473147e+18])
>>> a = np.asarray(a, dtype='datetime64[ns]')
>>> a
array(['2020-11-07T06:44:29.714103040'], dtype='datetime64[ns]')