从numpy timedelta64获得秒数

时间:2013-12-23 06:49:40

标签: python numpy pandas

我在pandas中有一个日期时间索引

index = np.array(['2013-11-11T12:36:00.078757888-0800',
                  '2013-11-11T12:36:03.692692992-0800',
                  '2013-11-11T12:36:07.085489920-0800',
                  '2013-11-11T12:36:08.957488128-0800'], dtype='datetime64[ns]')

我想以秒计算时差。我提出的方式是:

diff(index).astype('float64')/1e9

有更好/更清洁的方式吗?

1 个答案:

答案 0 :(得分:18)

你自己的答案是正确和好的。稍微不同的方法是使用timedelta表达式指定比例常数。

例如,要缩放到秒:

>>> np.diff(index)/np.timedelta64(1, 's')
array([ 3.6139351 ,  3.39279693,  1.87199821])

到分钟:

>>> np.diff(index)/np.timedelta64(1, 'm')
array([ 0.06023225,  0.05654662,  0.03119997])