如何使用numpy datetime64获取当前日期和时间?
给定一个datetime64数组,其中每个元素都是numpy值,如何获得以秒为单位的差值?
发布于 2017-06-17 15:51:02
您也可以这样做来获取当前日期和时间:
import numpy as np
np.datetime64('today') # today's date
np.datetime64('now') # timestamp right now 发布于 2013-10-19 10:39:18
您可以使用datetime模块获取当前日期并将其传递给datetime64
import numpy as np
import datetime
current = np.datetime64(datetime.datetime.now())现在您已经有了当前的datetime,我建议您查看numpy datetime64 documentation并按照提供的示例进行操作。timedelta64上的示例应该特别有帮助。
对于一个具体的示例,请考虑以下内容:
import numpy as np
import datetime
current = np.datetime64(datetime.datetime.now())
sample = [np.datetime64('2013-10-22T03:30Z'),
np.datetime64('2013-10-22T04:40Z'),
np.datetime64('2013-10-22T05:50Z')]
diff = [current-t for t in sample]
diffSec = [t.item().seconds for t in diff]此代码会导致diffSec数组包含与当前时间和样本时间之间的秒数差
Out[2]: [1723, 1818, 1913]解释:
<代码>G215
显然,这些精确的结果是不可重现的,因为我正在使用当前时间来计算差值。
发布于 2014-12-28 17:11:05
假设您想要计算数组t1和标量t0之间的差异(它们可以是数组或标量):
In [1]: import numpy as np
In [2]: t1=np.arange('2001-01-01T00:00', '2001-01-01T00:05', dtype='datetime64')
In [3]: t1
Out[3]:
array(['2001-01-01T00:00-0200', '2001-01-01T00:01-0200',
'2001-01-01T00:02-0200', '2001-01-01T00:03-0200',
'2001-01-01T00:04-0200'], dtype='datetime64[m]')
In [4]: t0=np.datetime64('2001-01-01T00:00:00')
In [5]: t0
Out[5]: numpy.datetime64('2001-01-01T00:00:00-0200')在numpy中计算时间差的最好方法是使用timedelta64。在上面的示例中,t0以分钟为单位,t1以秒为单位。在计算时间差时,它们都将转换为较小的单位(秒)。您只需将它们相减即可创建一个timedelta64对象:
In [6]: t1-t0
Out[6]: array([ 0, 60, 120, 180, 240], dtype='timedelta64[s]')如果您希望响应为数字格式,请执行此操作
In [7]: (t1-t0).astype('int')
Out[7]: array([ 0, 60, 120, 180, 240])请注意,我从未使用for结构来扫描数组。它会因为阻止向量化而降低效率。
https://stackoverflow.com/questions/19461258
复制相似问题