为什么timedeltas不能乘以/除以NumPy?

时间:2012-07-21 15:20:43

标签: python datetime numpy

我是NumPy的新用户,我试图计算一些简单的统计信息,例如medianstddev

其中一个"列"我想探索的是时差(其类型为timedelta64 NumPy类型),但我无法直接应用这些统计ufuncs

----> 1 age_request.std()

TypeError: ufunc 'divide' not supported for the input types, and the inputs could not be 
safely coerced to any supported types according to the casting rule 'safe'

为什么会这样?

我知道我应该调查Pandas,但首先我要熟悉NumPy

1 个答案:

答案 0 :(得分:2)

看看documentation for datetime。它列出了您可以在timedelta对象上执行的操作。分工是这样完成的:

t1 = t2 // i

请注意,这会计算出任何余额。

据我所知,您只能在timedelta对象上执行这些操作。虽然也许我错了,你可以使用numpy操作。

我建议将timedelta对象转换为微秒,然后进行除法,标准差,中位数等:

tdMicrosecs = td.microseconds + 1000.0 * td.seconds + 86400000000.0 * td.days
tdQuotient = tdMicrosecs / i

(但我应该补充一点,我不完全确定python可以存储的最大整数值是什么,如果tdMicrosecs可能超过它。)