我有numpy.ndarray
。前两列是datetime.datetime
类型的日期。我想找到两者之间的差异(作为一个浮点数)我将其定义为(天数差异)*(12/365)。所以我想通过减去两个日期时间来访问返回的timedelta对象的.days属性。
我不能这样做:(MyArray[1] - MyArray[0]).days
因为Python不知道期望timedelta对象。在C#中,我可能会尝试像这样投射:
((timedelta)(MyArray[1] - MyArray[0])).days
在Python(numpy)中执行此操作的方法是什么?我需要循环吗?
答案 0 :(得分:2)
不幸的是,如果没有迭代timedelta
deltas = MyArray[1]-MyArray[0]
diff_days = np.fromiter((d.days for d in deltas), dtype=float, count=len(deltas))
在这里,我们使用np.fromiter
count
参数来提高效率(它预先分配数组的大小)。
请注意,在此日期(2012/09),新的datetime64
dtype
不允许您获取days
等属性。