首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量从datetime.timedelta转换为numpy.timedelta64

将变量从datetime.timedelta转换为numpy.timedelta64
EN

Stack Overflow用户
提问于 2012-10-29 21:52:01
回答 2查看 6.2K关注 0票数 1

如何将变量从Python的datetime.timedelta转换为numpy.timedelta64

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-29 21:53:48

代码语言:javascript
复制
array([datetime.timedelta(1)], dtype="timedelta64[ms]")[0]

This link解释了许多关于datetime64timedelta64的事情。这也适用于将datetime.datetime转换为datetime64

票数 6
EN

Stack Overflow用户

发布于 2019-05-25 04:37:21

您可以在不创建np.array的情况下完成此操作,方法是将datetime.timedelta中的基本整数表示(天、秒和微秒)映射到相应的np.timedelta64表示,然后求和。

这种方法的缺点是,虽然您将获得相同的增量持续时间,但您不会总是获得相同的单位。这种方法的优点是,如果要转换单个值而不是大型数组,通常会比创建数组更快。

您也可以只使用datetime.timedelta调用np.timedelta64(),但这种方法只返回以微秒为单位的np.timedelta64()

代码语言:javascript
复制
from functools import reduce
import operator

TIME_DELTA_ATTR_MAP = (
        ('days', 'D'),
        ('seconds', 's'),
        ('microseconds', 'us')
        )

def to_timedelta64(value: datetime.timedelta) -> np.timedelta64:
    return reduce(operator.add,
        (np.timedelta64(getattr(value, attr), code)
        for attr, code in TIME_DELTA_ATTR_MAP if getattr(value, attr) > 0))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13122960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档