如何在Jupyter的变量中存储%%time值?

2024-09-30 03:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道在Jupyter工作的一个单元的CPU时间。我把%%time放在了牢房的顶端。它会打印出墙上的时间。但我不能把这个时间值存储在变量中?在

你能帮我一下吗?在

谢谢。在


Tags: time时间jupytercpu单元牢房
2条回答

您还可以定义自己的函数,该函数在单元格的开头和结尾接收时间戳。例如:

import time
def exec_time(start, end):
   diff_time = end - start
   m, s = divmod(diff_time, 60)
   h, m = divmod(m, 60)
   s,m,h = int(round(s, 0)), int(round(m, 0)), int(round(h, 0))
   print("Execution Time: " + "{0:02d}:{1:02d}:{2:02d}".format(h, m, s))

然后运行如下:

^{pr2}$

以:hha:hha-out格式打印此执行。在

无法存储%time魔术的结果,但可以存储%timeit魔术的结果。timeit魔法的配置要稍微多一些。因此,如果您希望它的行为与%time完全相同,则需要对其进行配置。在下面的代码中使用了参数-n1 -r1 and -o。这里-n1表示在一个循环中运行代码n(1)次。-r1表示运行循环r(1)次并获得最佳结果。你不需要使用这些标志,它们只是意味着你会更快地得到结果。如果你真的使用它们,那么结果会更具代表性。magic将根据计时代码的快或慢,尝试为nr选择合理的值。这意味着无论代码有多快或多快,都应该在几乎相同的时间内得到结果。因此,你可能不想使用它们。最后,-o表示返回一个result对象(而不是只打印结果)。在

例如

In [1]: result = %timeit -n1 -r1 -o sum(range(1000000))

53.7 ms ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)

In [2]: print(result)
        print(result.average)

        53.7 ms ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
        0.05373367803767323

细胞魔法有点复杂,因为你不能直接指定它的结果。在

^{pr2}$

相关问题 更多 >

    热门问题