Numpy의 타임 스탬프
Nov 07 2020
wrf-python을 사용하여 netcdf 파일에서 데이터를 추출하려고합니다. 데이터는 매시간입니다. 날짜는 달력-날짜-시간이 아닌 숫자로 추출됩니다. 먼저 데이터를 추출하고 플랫 np 배열로 변환 한 다음 파일을 저장합니다. 형식은 '% s'로 저장됩니다.
np.savetxt((stn + 'WRF_T2_T10_WS_WD.csv'), np.transpose(arr2D), %s, delimiter=',', header=headers, comments='')
다음과 같이 보입니다.
하지만 다음과 같아야합니다.
감사
답변
ti7 Nov 07 2020 at 13:53
일반적으로 날짜는 1970 년 1 월 1 일부터 초 단위 로 오프셋으로 저장되는 경우가 많습니다.
초 변환의 경우이 답변 Python Numpy Loadtxt-Convert unix timestamp 는 데이터 유형을 변경하여 변환하도록 제안합니다 (행별 루프를 피하고 데이터를 복사하는 등 가능한 한 효율적이어야 함).
x = np.asarray(x, dtype='datetime64[s]')
그러나 E+18접미사는 실제로 날짜가있는 경우 타임 스탬프가 나노초 단위이므로 적합 datetime64[ns]할 수 있음을 의미합니다.
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]')