我正在尝试使用 wrf-python 从 netcdf 文件中提取数据。数据是每小时。日期被提取为数字,而不是日历日期时间。首先我提取数据,将其转换为平面 np 数组,然后尝试保存文件。格式保存为“%s”
np.savetxt((stn + 'WRF_T2_T10_WS_WD.csv'), np.transpose(arr2D), %s, delimiter=',', header=headers, comments='')
它看起来像这样:但它需要看起来像这样:
谢谢
最佳答案
按照惯例,日期经常存储为 offset in seconds from Jan 1, 1970
对于转换秒的情况,这个答案Python Numpy Loadtxt - Convert unix timestamp建议通过更改数据类型来转换它们(应该尽可能高效,因为它可以避免逐行循环、复制数据等)
x = np.asarray(x, dtype='datetime64[s]')
然而,E+18
postfix 意味着如果你真的有一个日期,你的时间戳以纳秒为单位,所以 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]')
关于python - Numpy 中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64725123/