有什么办法可以将numba中的timedelta64转换为int64?

时间:2020-07-22 01:26:43

标签: python numpy numba timedelta

例如,我有一段代码:

import numpy as np
from numba import njit

d = np.array(['2001-01-01T12:00', '2002-02-03T13:56:03.172'],
              dtype='datetime64')

@njit
def datetime_operand(date):
    x = date[1] - date[0]
    return x


datetime_operand(d) // the result is numpy.timedelta64(34394163172,'ms')

键入np.int64(x)的简单选项无济于事。

2 个答案:

答案 0 :(得分:0)

我不确定您要寻找的结果,但是我想熊猫可以在这里提供帮助:

import pandas
@njit
def datetime_operand(date):
    df = pandas.DataFrame(d.T)
    df[0]=pd.to_datetime(df[0])
    return (df[0].iloc[1]-df[0].iloc[0]).to_numpy()

结果是这样的:

datetime_operand(d)
umpy.timedelta64(34394163172,'ms')

答案 1 :(得分:0)

实际上,答案是:

import numpy as np
dt64 = np.datetime64('2009-01-01')
print((dt64 — np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's'))