Datetime 从timedelta对象的numpy.ndarray获取days属性

Datetime 从timedelta对象的numpy.ndarray获取days属性,datetime,casting,numpy,python-2.7,timedelta,Datetime,Casting,Numpy,Python 2.7,Timedelta,我有一个numpy.ndarray。前两列是类型为datetime.datetime的日期。我想找出两者之间的月差(浮动),我将其定义为(天数差)*(12/365)。因此,我想访问通过减去两个datetime返回的timedelta对象的.days属性 我不能这样做:(MyArray[1]-MyArray[0])。天,因为Python不知道需要timedelta对象。在C#中,我可能会尝试这样的铸造: ((timedelta)(MyArray[1] - MyArray[0])).days 在P

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

我不能这样做:
(MyArray[1]-MyArray[0])。天
,因为Python不知道需要timedelta对象。在C#中,我可能会尝试这样的铸造:

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

在Python(numpy)中实现这一点的方法是什么?我需要循环吗?

不幸的是,如果不在
timedelta

deltas = MyArray[1]-MyArray[0]
diff_days = np.fromiter((d.days for d in deltas), dtype=float, count=len(deltas))
这里,我们使用
np.fromiter
count
参数来提高效率(它预先分配了数组的大小)


请注意,新的
datetime64
dtype
在该日期(2012/09)不允许您获得
之类的属性,谢谢。我不明白你的最后一段话。。。你是说如果我实例化datetime对象时没有任何天数,那么我就无法恢复天数?另外,我使用的是datetime而不是datetime64,datetime64有什么优势吗?@Dan
np.datetime64
是NumPy中的一个新的
dtype
,针对NumPy进行了优化。您的
MyArray[1]
实际上有一个
dtype=object
,即它是对象的
ndarray
,每个对象都是一个
datetime
object
dtype数组不如常规数组有效……你是说我更应该使用numpy.datetime64而不是datetime.datetime来实现这种应用程序吗?或者你是说,即使numpy.datetime64更可取,但在这个版本中它没有实现我所描述的功能?
np.datetime64
在这个日期仍然被认为是实验性的,我不确定它是否会有
.day
.hour
。。。性质