python - 如何从脚本运行 IPython 魔法(或计时 Python 脚本)

标签 python ipython

IPython %timeit 魔术命令可以很好地测量运行某些 Python 代码所需的时间。现在,我想在 Python 脚本中使用类似的东西。我知道 timeit 模块,但是,它有几个缺点,例如,如何自适应地选择运行次数?即默认代码

import timeit
t=timeit.Timer("code(f)", "from __main__ import code,f")
t.timeit() 

运行代码百万次。 %timeit IPyhton 魔术命令会自动执行此操作。我建议我可以使用 MATLAB 代码之类的东西 http://www.mathworks.com/matlabcentral/fileexchange/18798

它会自动完成所有工作(并且还会告诉函数的开销是否很大)。

如何从 Python 脚本调用 %timeit 魔法(或者也许有更好的计时解决方案)?

最佳答案

这在一定程度上取决于您拥有的 IPython 版本。如果你有 1.x:

from IPython import get_ipython
ipython = get_ipython()

如果您有旧版本:

import IPython.core.ipapi  
ipython = IPython.core.ipapi.get()

import IPython.ipapi  
ipython = IPython.ipapi.get()

完成后,运行如下魔法命令:

ipython.magic("timeit abs(-42)")

请注意,脚本必须通过 ipython 运行。

关于python - 如何从脚本运行 IPython 魔法(或计时 Python 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361206/

相关文章:

matplotlib - 为什么 matplotlib ax.transData.transform 在不同的 ipython 单元格中给出不同的值?如何解决这个问题?

python - 在 matplotlib 中仅绘制一种 rgb 颜色

python - 使用 Scrapy 抓取网站时使用 Xpath 的混淆

ipython - 在 Jupyter 笔记本中,如何将自动缩进更改为制表符而不是 4 个空格

Django IPython sqlite 提示幼稚的日期时间

python - 类型错误 : unsupported operand type(s) for -: 'str' and 'int' (Python)

ipython - Anaconda Spyder 集成了 IPython 数据帧显示

python - Python 中的函数如何在返回后记住它的值?

python - ImportError - 在 CircleCI 上测试失败但在本地通过

python - python中递归方法的AttributeError