我想捕获并绘制 5 个左右调用的结果,其中Ntimeit
的大小呈对数递增,以显示如何随输入缩放。methodX()
到目前为止,我已经尝试过:
output = %timeit -r 10 results = methodX(N)
这没用...
在文档中也找不到信息。我觉得您至少应该能够拦截打印的字符串。之后我可以解析它以提取我的信息。
有没有人这样做或尝试过?
PS:这是在 ipython 笔记本中,如果有差异的话。
我想捕获并绘制 5 个左右调用的结果,其中Ntimeit
的大小呈对数递增,以显示如何随输入缩放。methodX()
到目前为止,我已经尝试过:
output = %timeit -r 10 results = methodX(N)
这没用...
在文档中也找不到信息。我觉得您至少应该能够拦截打印的字符串。之后我可以解析它以提取我的信息。
有没有人这样做或尝试过?
PS:这是在 ipython 笔记本中,如果有差异的话。
这个重复的问题Capture the result of an IPython magic function有一个答案证明这已经被实现了。
使用以下选项调用%timeit
魔法:-o
%timeit -o <statement>
返回一个TimeitResult
对象,该对象是一个简单对象,其中包含有关%timeit
运行的所有信息作为属性。例如:
In [1]: result = %timeit -o 1 + 2
Out[1]: 10000000 loops, best of 3: 23.2 ns per loop
In [2]: result.best
Out[2]: 2.3192405700683594e-08
PS:这是在 ipython 笔记本中,如果有差异的话。
不,不是的。
在开发中,有 te%%capture
细胞魔法。另一种方法是修改 timeit 魔法以返回值而不是打印,或者使用 timeit 模块本身。欢迎补丁。