python - 在 python 2.7 中将包含 datetime.timedelta 的 numpy 数组转换为秒的优雅方法

标签 python arrays loops datetime numpy

我有一个名为 dt 的 numpy 数组。每个元素都是 datetime.timedelta 类型。例如:

>>>dt[0]
datetime.timedelta(0, 1, 36000)

如何将 dt 转换为仅包含秒数而不循环的数组 dt_sec ?我目前的解决方案(可行,但我不喜欢)是:

dt_sec = zeros((len(dt),1))
for i in range(0,len(dt),1):
    dt_sec[i] = dt[i].total_seconds()

我尝试使用 dt.total_seconds() 但当然没有用。关于如何避免此循环的任何想法?

谢谢

最佳答案

import numpy as np

helper = np.vectorize(lambda x: x.total_seconds())
dt_sec = helper(dt)

关于python - 在 python 2.7 中将包含 datetime.timedelta 的 numpy 数组转换为秒的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19039080/

相关文章:

c++ - 在函数中引用自动数组迭代器

ruby - 以下哪项是最有效的

javascript - Javascript 中的高级数组和循环

python - 使用 Python 读取 UTF8 CSV 文件

python - 如何将 UTC 时间戳字符串转换为 pandas 日期时间?

python - OpenCV:从摄像头编写视频,奇怪的结果(Python 和 Mac)

python - 将分类移至生产环境

c++ - 动态创建和填充数组

arrays - 在 ruby​​ 中将两个字符串过滤为 1 的最佳方法

r - 在 R 中的 if 语句中使用 for 循环