【问题标题】:How to speed up a CLOCK_MONOTONIC list of timestamps如何加快 CLOCK_MONOTONIC 时间戳列表
【发布时间】:2021-02-11 18:09:32
【问题描述】:

我有一个 SECONDS.MICROSECONDS CLOCK_MONOTONIC 时间戳列表,如下所示:

5795.944152
5795.952708
5795.952708
5795.960820
5795.960820
5795.969092
5795.969092
5795.977502
5795.977502
5795.986061
5795.986061
5795.994075
5795.994075
5796.002382
5796.002382
5796.010860
5796.010860
5796.019241
5796.019241
5796.027452
5796.027452
5796.035709
5796.035709
5796.044158
5796.044158
5796.052453
5796.052453
5796.060785
5796.060785
5796.069053

它们各自代表要执行的特定操作。

我需要做的,最好是在 python 中,但编程语言并不重要,是加快动作 - 比如能够在这个列表中进行 2X、3X 等速度增量。所以这些值需要以这样的方式减少,以匹配 ?X 的速度增量。

我想过将每个时间戳除以我想要的速度数,但似乎这样行不通。

【问题讨论】:

  • "但它似乎不能这样工作。"请澄清它在多大程度上不起作用。你有错误吗?会不会发生意想不到的事情?就此而言,你是怎么做到的?你能提供一个minimal reproducible example吗?
  • 听起来您可能想为每个时间 T 计算 T0 + (T - T0)/speedupfactor,其中 T0 是初始时间(您指定的时间或列表中的第一次或其他时间)。
  • @RobertDodier 是的,这正是需要做的,就像for x in timestamps: increasedtimestamp = float(t0) + (float(x) - float(t0))/speed speedtimestamps.append(round(Decimal(increasedtimestamp), 6)) 一样简单。谢谢!
  • 太好了,很高兴听到。通过列表理解,您可能对更“Pythonic”的方式感兴趣。比如:speedtimestamps = [(T0 + (T - T0)/speed for T in timestamps]

标签: python-3.x math time


【解决方案1】:

正如@RobertDodier 所描述和建议的那样,我已经设法找到一个快速简单的解决方案来解决我的问题:

speed = 2
speedtimestamps = [(t0 + (t - t0)/speed for t in timestamps]

只需确保删除包含第一个 t0 时间戳的第一行。

【讨论】:

  • 这与您以前的有什么不同? “我想过将每个时间戳除以我想要的速度数,但似乎这样行不通。”
  • 我划分的是整个时间戳,而不是时间戳和初始 T0 时间戳之间的差异
猜你喜欢
  • 1970-01-01
  • 2016-12-16
  • 2014-11-06
  • 2015-08-20
  • 1970-01-01
  • 2023-03-31
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多