3
我想,这里的关键是要有中间转换的次数少,但我没能找到新numpy的2.0开发一个简单的方法什么是从unixtime转换为numpy.datetime64的最快方式?
我想,这里的关键是要有中间转换的次数少,但我没能找到新numpy的2.0开发一个简单的方法什么是从unixtime转换为numpy.datetime64的最快方式?
其实,numpy.datetime64
对象基本上都是UNIX时间内(含6额外的有效位数以说明毫秒精度)。你只需要乘以1e6
。
作为一个例子:
import numpy as np
# Generate a few unix time stamps near today...
x = np.arange(1326706251, 1326706260)
# Convert to datetimes...
x *= 1e6
x = x.view(np.datetime64)
print x
这产生了:
[2012-01-16 09:30:51 2012-01-16 09:30:52 2012-01-16 09:30:53
2012-01-16 09:30:54 2012-01-16 09:30:55 2012-01-16 09:30:56
2012-01-16 09:30:57 2012-01-16 09:30:58 2012-01-16 09:30:59]
乘以1E6似乎溢出np.datetime64。另一方面,使用np.datetime64(1326706251,'s')似乎给出了我想要的结果。你使用哪个版本的numpy? – tonicebrian 2012-01-17 12:51:04
我正在使用'1.6'。它不会为我溢出,'np.datetime64'不会为我带来第二个参数,无论是... – 2012-01-17 16:13:08
好的,也许是我使用2.0 dev。谢谢!! – tonicebrian 2012-01-17 16:25:44