假设有一个变量time
,即
<class 'netCDF4._netCDF4.Variable'>
int32 time(time)
units: seconds since 1955-01-01
unlimited dimensions: time
current shape = (1464,)
filling off
我用time = nc.num2date(time[:],time.units)
把它改成了datetime。输出为
array([datetime.datetime(2012, 1, 1, 0, 0),
datetime.datetime(2012, 1, 1, 6, 0),
datetime.datetime(2012, 1, 1, 12, 0), ...,
datetime.datetime(2012, 12, 31, 6, 0),
datetime.datetime(2012, 12, 31, 12, 0),
datetime.datetime(2012, 12, 31, 18, 0)], dtype=object)
如果我想把datetime分为两部分,即date == the current date as 8 digit integer (YYYYMMDD)
和datesec == seconds to complete current date
。例如,
这个数组可以分为两个数组(date
和datesec
)
date = array([20120101,20120101,20120101,20120101,
20120102,20120102,...])
datesec = array ([0,21600,43200,64800,
0,21600,43200,64800,
0, 21600,43200,......])
有没有一个有效的方法来处理它?你知道吗
如果你追求的是效率,不要使用对象数组。改用numpy的内置
datetime64
数据类型。你知道吗据我所知,
datetime64
使用起来不如datetime
舒服,但它完成了任务。你知道吗据我所知,你必须手动进行转换。基于元数据,比如
应该导致
现在,举例来说,把每一天的秒数计算进去:
如果需要,可以将视图转换为
int64
数据类型。(不确定此处是否存在任何平台依赖关系。检查您的环境以确定。)得到唯一的日期
或者
如果你真的想要6位数的整数形式
“有效率”是一个主观术语。你知道吗
我看不出有什么问题
第一个似乎不是很有用,尤其是作为numpy数组。你知道吗
相关问题 更多 >
编程相关推荐