我正在做这样的事情:
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中工作正常
答案 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)