问题
大多数IPython的“神奇功能”的工作对我罚款马上蝙蝠: %hist
,%time
,%prun
等。然而,我注意到,%lprun
无法IPython中找到,因为我想最初安装它。
尝试解决
然后,我发现我应该安装该line_profiler
模块。我已经安装了此模块,但是似乎仍然无法使magic函数正常工作。如果我尝试调用%lprun
,iPython
仍然找不到该函数。如果我用全名(line_profiler.magic_lprun)
调用它,则可以找到该函数,但根本无法使它正常工作。下面是我所做的示例(从“ Python for Data Analysis”
一书中逐步学习):
成功使用 %prun
[在:]
def add_and_sum(x, y):
added = x + y
summed = added.sum(axis=1)
return summed
x = randn(3000, 3000)
y = randn(3000, 3000)
add_and_sum(x, y)
有了这个,我得到了一个不错的答案,正如预期的那样:
[输出:]
array([-23.6223074 , -10.08590736, -31.2957222 , ..., -14.17271747,
63.84057725, -50.28469621])
而且我可以执行分析魔术功能%prun:
[在:]
%prun add_and_sum(x, y)
[输出:]
6 function calls in 0.042 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.020 0.020 0.029 0.029 <ipython-input-27-19f64f63ba0a>:1(add_and_sum)
1 0.013 0.013 0.042 0.042 <string>:1(<module>)
1 0.009 0.009 0.009 0.009 {method 'reduce' of 'numpy.ufunc' objects}
1 0.000 0.000 0.009 0.009 _methods.py:16(_sum)
1 0.000 0.000 0.009 0.009 {method 'sum' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
使用失败 %lprun
但是,当我尝试时%lprun,我什么也得不到:
[在:]
%lprun -f add_and_sum add_and_sum(x, y)
[输出:]
ERROR: Line magic function `%lprun` not found.
而且,如果我尝试使用其标准名称调用该函数,那么它也将不起作用:
[在:]
line_profiler.magic_lprun -f add_and_sum.test test.add_and_sum(x, y)
[输出:]
line_profiler.magic_lprun -f add_and_sum.test test.add_and_sum(x, y)
^
SyntaxError: invalid syntax
但是该库已正确导入,或者至少是这样写的:
[在:]
line_profiler
[输出:]
<module 'line_profiler' from '/Users/<edit>/anaconda/lib/python2.7/site-packages/line_profiler-1.0b3-py2.7-macosx-10.5-x86_64.egg/line_profiler.pyc'>
[在:]
line_profiler.magic_lprun
[输出:]
<function line_profiler.magic_lprun>
似乎还有一些我应该配置的东西,这样我添加的这些新魔术功能就可以被识别出来。我无法通过网络搜索找到任何东西。
我将Spyder作为IDE运行(仍然使用iPython作为控制台),但是我也直接在iPython和iPython Notebook中对其进行了尝试。我没有任何形式的运气。
要进行%lprun工作,您需要使用以下命令将扩展加载到会话中:
In [1]: %load_ext line_profiler
查看此笔记本,查看一些使用魔术的示例。
此外,如果您正在使用Spyder,则还有一个第三方line_profiler插件
问题内容: 我有以下目录: 我在file1.py中定义了一个函数f。 如果在file2.py中,我这样做 我收到以下错误: SystemError:父模块“”未加载,无法执行相对导入 为什么?以及如何使其工作? 问题答案: 由于和位于同一目录中,因此您甚至不需要文件。如果您要扩大规模,请留在那里。 要将某文件导入同一目录中的文件,只需执行以下操作 即,您不需要执行相对路径,因为它们位于同一目录中。
我是IntelliJ/静态编程语言的新手;在我的. kts文件中: 但是在我的Main.java, 它不识别导入的“redis”部分(“redis”是红色的,未解析的对 redis 的引用) 我做错了什么?
问题内容: 我有代码: 这返回 如果我们有 我们得到 为什么有区别?为什么(第一次)没有区别? 谢谢! 问题答案: 让我解释一下您在做什么: 您正在创建一个正则表达式,它将查找或,然后尝试查找是否还有更多或之后的内容,并且它将一直寻找或直到找不到为止。因为您希望捕获组仅返回,否则您只会得到最后一个捕获/找到的组。 但是,如果你有一个这样的字符串:你会得到,因为你在字符串先来看看,找到,然后你看多了
我的媒体对象不想实例化,我有所有正确导入的jar文件,包括JavaFX,这样我可以播放mp3文件。 我有导入的包: 但是它仍然不能运行。任何建议都将不胜感激,因为我已经谷歌了几天关于媒体和插件的一切:(
问题内容: 当我运行以下脚本时,两个lambda都在同一文件junk.txt上运行os.startfile()。我希望每个Lambda都使用创建Lambda时设置的值“ f”。有没有办法让它按我的预期运行? 问题答案: 一种方法是执行此操作: 否则,在调用该函数时将进行查找,因此您将获得当前(循环后)的值。 我更喜欢的方式: 甚至(在python 2.5+中):
我下面的教程视频链接在这里:http://www.youtube.com/watch?v=wAwQ-noyB98 我安装了Matplotlib,包括其他必要的库:Numpy、dateutil、pytz、pyparsing和六个。 现在,我正在尝试以下命令: 导入matplotlib.pyplot plt。图([1,2,3,4,5,6,7],[5,6,7,8,9,10,11]) 我期待着某种图形出现