Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我希望Python类/函数近似于IPython%%timeit_Python_Jupyter Notebook_Ipython_Timeit - Fatal编程技术网

我希望Python类/函数近似于IPython%%timeit

我希望Python类/函数近似于IPython%%timeit,python,jupyter-notebook,ipython,timeit,Python,Jupyter Notebook,Ipython,Timeit,IPython或Jupyter笔记本中的%%timeit有两个我喜欢的功能 运行一段有限的时间,自动调整给定批次数的迭代次数 输出为平均值+标准偏差。这比许多运行中的最小运行时间要好 下面是IPython终端的输出示例。第一个来自函数的“慢版本”,第二个来自更快的版本 In [21]: %timeit hh = gg.get_map(form="232", year=2019, source="form") 1.82 s ± 111 ms per l

IPython或Jupyter笔记本中的
%%timeit
有两个我喜欢的功能

  • 运行一段有限的时间,自动调整给定批次数的迭代次数

  • 输出为平均值+标准偏差。这比许多运行中的最小运行时间要好

  • 下面是IPython终端的输出示例。第一个来自函数的“慢版本”,第二个来自更快的版本

    In [21]:  %timeit hh = gg.get_map(form="232", year=2019, source="form")
    1.82 s ± 111 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
    
    In [18]: %timeit jj = fm.get_map(form="232", year=2019, source="form")
    324 µs ± 22.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
    
    请注意,当函数运行缓慢时,返回7 x 1的执行时间,但当函数运行较快时,返回的执行时间为7 x 1000

    我一直在研究IPython代码,以了解它们是如何做到这一点的,我认为我可以适应一段python代码。这是一项困难的工作!这让我进入了与AST互动的陌生领域


    在我看来,一定有人做过这件事。没有Python包吗?

    简单的回答是,在py文件/纯Python代码块中无法实现这一点

    一旦解析了文件,就无法从Python获取AST。这就是为什么“宏”是Python中经常要求的特性之一,因为它们可以让您执行类似的操作

    可能有一些黑客的方法,但粗略地说,您需要找到定义代码的文件,并将内容作为字符串进行操作;IPython可以做的就是自己进行解析

    。。。。或者制作一个API,该API采用多行字符串而不是Python代码块,这很难看,但可以工作


    更一般地说,如果您认为在IPython中有一些代码块我们可以使其更具可重用性,请随意打开一个问题/请求。

    我(目前)不接受这个答案,因为这太令人沮丧了!其他人能参与进来确认@Matt的评估吗?作为额外信息;我大部分时间都是用IPython编写的,我希望被证明是错的。另请参见包含Python宏的Xonsh,并将其用于timeit。