pycharm中的timeit无法解析

时间:2018-09-02 03:56:59

标签: numpy pycharm

我正在做这样的事情:

import numpy as np
import timeit

a = np.arange(1000)
%timeit a**2

错误:

TypeError: 'module' object is not callable

我想在pycharm中打印语句a**2的执行时间,有人可以帮助我

注意:%timeit a**2在Jupyter Notebook中工作正常

3 个答案:

答案 0 :(得分:1)

%timeit%%timeit是Jupyter的魔术命令,仅在IPython / Jupyter中运行。它们通常无法在PyCharm或Python脚本中使用。

如果您拥有PyCharm Professional,则可以通过单击配置文件按钮(在“运行”,“调试”和“有覆盖范围运行”按钮的右侧)来配置脚本。

如果不这样做,您可以通过插入来计时任何Python 3脚本

from datetime import datetime
startTime = datetime.now()

print(datetime.now() - startTime)

最后。

答案 1 :(得分:0)

如安德烈·波特诺伊(Andrey Portnoy)所述,%timeit魔术不起作用,但是您仍然可以使用类似的功能:

import numpy as np
import timeit
a = np.arange(1000)
t = timeit.timeit('a**2', globals=dict(a=a))
print(t)

您还可以在pycharm调试模式下在检查点停止脚本,并在控制台中使用%timeit魔术。不知道为什么这样做行得通。

答案 2 :(得分:0)

pycharm 支持魔术命令,例如 %timeit,但前提是在 python 控制台或调试控制台中执行(如@Carlos de Lannoy 所述)。看看pycharm documentation。尽管如果您像在示例中那样将它们放入脚本中,它们将无法工作。

确保你的 pycharm 控制台使用的 python 环境中安装了 ipython,否则将无法运行。例如:

conda install -n myenv ipython

示例:

In[0]: import numpy as np
  ...: a = np.arange(1000)
  ...: %timeit a**2
2.36 µs ± 226 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)