从numpy timedelta64获得秒数

Fra*_*Fra 13 python numpy 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]')
Run Code Online (Sandbox Code Playgroud)

我想以秒为单位计算时差.我想出的方式是:

diff(index).astype('float64')/1e9
Run Code Online (Sandbox Code Playgroud)

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

alk*_*lko 18

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

例如,要缩放到秒:

>>> np.diff(index)/np.timedelta64(1, 's')
array([ 3.6139351 ,  3.39279693,  1.87199821])
Run Code Online (Sandbox Code Playgroud)

分钟:

>>> np.diff(index)/np.timedelta64(1, 'm')
array([ 0.06023225,  0.05654662,  0.03119997])
Run Code Online (Sandbox Code Playgroud)