我想关键是要减少中间转换的次数,但我在新的Numpy 2.0开发版中找不到一个简单的方法。
事实上, 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]
截至NumPy 1.18:
import numpy as np
timestamp = np.datetime64(1326706251, 's')
print(timestamp)
18: 输出:
2012-01-16T09:30:51