我正在寻找一个类似于np.interp
的函数,它可以处理datetime
对象。
例如:
import datetime, numpy as np
arr1 = np.array([datetime.datetime(2008,1,d) for d in range(1,10)])
arr2 = np.arange(1,10)
np.interp(datetime.datetime(2008,1,5,12),arr1,arr2)
理想情况下会返回5.5
,但numpy
会提高TypeError: array cannot be safely cast to required type
。这附近有没有一条不错的Python路线?
如果您的时间戳中有/需要亚秒精度,这里有一个经过编辑的rchang的answer版本(基本上只是一个不同的
toTimestamp
方法)我不能说任何关于时区的问题,因为我没有用其他时区测试过。
^{} function 期望
arr1
和arr2
是一维浮点数序列,即,如果要使用np.interp()
,应该将datetime
对象的序列转换为一维浮点数序列。如果输入数据对所有datetime对象使用相同的UTC偏移量,则可以通过从所有值中减去引用日期来获得浮点值。如果your input is UTC(偏移量始终为零),则为真:
您可以将它们转换为时间戳(经过编辑以反映使用
calendar.timegm
以避免与时区相关的陷阱)。相关问题 更多 >
编程相关推荐