我总是阅读代码以这样计算时间:
%timeit function()
这里的“%”是什么意思?
我认为,“%”总是用于替换字符串中的某些内容,例如 %s 表示替换字符串,%d 表示替换数据,但我不知道这种情况。
原文由 xirururu 发布,翻译遵循 CC BY-SA 4.0 许可协议
我总是阅读代码以这样计算时间:
%timeit function()
这里的“%”是什么意思?
我认为,“%”总是用于替换字符串中的某些内容,例如 %s 表示替换字符串,%d 表示替换数据,但我不知道这种情况。
原文由 xirururu 发布,翻译遵循 CC BY-SA 4.0 许可协议
这在 IPython 中被称为 _行魔法_。它们的独特之处在于它们的参数只延伸到当前行的末尾,而魔法本身确实是为命令行开发而构建的。 timeit
用于计时代码的执行。
如果您想查看可以使用的所有魔法,只需键入:
%lsmagic
获取 line magics 和 cell magics 的列表。
此处 文档中的一些更神奇的信息:
IPython 有一个我们称之为 魔法 的命令系统,它有效地提供了一种迷你命令语言,它与 Python 的语法正交,并且可以由用户使用新命令进行扩展。魔术旨在以交互方式键入,因此它们使用命令行约定,例如使用空格分隔参数、使用破折号分隔选项和其他典型的命令行环境约定。
根据您处于 线路 模式还是 单元格 模式,有两种不同的使用方式 %timeit
。您的问题说明了第一种方式:
In [1]: %timeit range(100)
对比
In [1]: %%timeit
: x = range(100)
:
原文由 miradulo 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答915 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
%timeit
是一个 IPython魔术 函数,可用于对特定代码段(单个执行语句或单个方法)计时。从文档中:
要使用它,例如如果我们想知道使用
xrange
是否比使用range
更快,你可以简单地做:你会得到他们的时间。
%timeit
的主要优点是:您 不必 从标准库 中导入
timeit.timeit
,并多次运行代码以确定哪种方法更好。%timeit 将根据总共 2 秒的执行窗口自动计算代码所需的运行次数。
您还可以使用当前的控制台变量而不传递整个代码片段,如
timeit.timeit
构建在另一个环境中构建的变量,它可以工作。