2024-04-29 00:15:53 发布
网友
如何从numpy.timedelta64变量中获取以秒为单位的时差?
time1 = '2012-10-05 04:45:18' time2 = '2012-10-05 04:44:13' dt = np.datetime64(time1) - np.datetime64(time2) print dt 0:01:05
我想把dt转换成表示秒时差的数字(int或float)。
dt
您可以通过“包装”日期时间项访问它:
>>> dt.item().total_seconds() 65.0
解释:这里dt是numpy中的array scalar,它是零秩数组或0维数组。所以你会发现这里的dt也有ndarray拥有的所有方法,你可以做例如dt.astype('float')。但它包装了一个python对象,在本例中是一个datetime.timedelta对象。
numpy
dt.astype('float')
datetime.timedelta
要获得原始标量,可以使用dt.item()。要索引数组标量,可以使用getitem的奇怪语法(使用空元组):
dt.item()
>>> dt[()] array(datetime.timedelta(0, 65), dtype='timedelta64[s]')
这应该适用于所有版本的numpy,但是如果您使用的是numpy v1.7+,那么最好直接使用更新的numpy datetime API,正如这里的回答J.F. Sebastien中所解释的那样。
要使用^{} 1.7 experimental datetime API从numpy.timedelta64()对象获取秒数:
numpy.timedelta64()
seconds = dt / np.timedelta64(1, 's')
您可以通过“包装”日期时间项访问它:
解释:这里
dt
是numpy
中的array scalar,它是零秩数组或0维数组。所以你会发现这里的dt
也有ndarray拥有的所有方法,你可以做例如dt.astype('float')
。但它包装了一个python对象,在本例中是一个datetime.timedelta
对象。要获得原始标量,可以使用
dt.item()
。要索引数组标量,可以使用getitem的奇怪语法(使用空元组):这应该适用于所有版本的numpy,但是如果您使用的是numpy v1.7+,那么最好直接使用更新的numpy datetime API,正如这里的回答J.F. Sebastien中所解释的那样。
要使用^{} 1.7 experimental datetime API 从
numpy.timedelta64()
对象获取秒数:相关问题 更多 >
编程相关推荐