1

我有一个numpy.ndarray. 前两列是日期类型datetime.datetime。我想找到两者之间的月差(作为浮点数),我将其定义为(天数差)*(12/365)。所以我想访问通过减去两个日期时间返回的 timedelta 对象的 .days 属性。

我不能这样做:(MyArray[1] - MyArray[0]).days因为 Python 不知道期望 timedelta 对象。在 C# 中,我可能会尝试像这样进行转换:

((timedelta)(MyArray[1] - MyArray[0])).days

在 Python (numpy) 中执行此操作的方法是什么?我需要循环吗?

4

1 回答 1

2

不幸的是,如果不迭代你的数组是不可行的timedelta

deltas = MyArray[1]-MyArray[0]
diff_days = np.fromiter((d.days for d in deltas), dtype=float, count=len(deltas))

在这里,我们使用np.fromiterwithcount参数来提高效率(它预先分配了数组的大小)。

请注意,新版本在此日期(2012/09)将不允许您datetime64 dtype获得类似days.

于 2012-09-13T12:05:25.100 回答