ipython%run和prompt之间的差异

时间:2014-01-28 19:24:32

标签: python numpy ipython

我有以下简单的错误代码

from numpy import random, sqrt
points = random.randn(20,3);
points = points / sqrt(sum(points**2,1))

在ipython中(使用%autoreload 2)如果我将其复制并粘贴到终端中,我会得到一个ValueError,正如人们所期望的那样。如果我将其保存为文件并使用%run,那么它运行时不会出错(它不应该)。

这里发生了什么?

1 个答案:

答案 0 :(得分:2)

我只是想出来了,但我写了这个问题,这可能对其他人有用。

numpy sum和本地sum之间存在差异。将第一行更改为

from numpy import random, sqrt, sum

将其修复为%run默认情况下使用本机版本(至少使用我的设置)。本机运行不接受轴参数,但也不会引发错误,因为它是start参数,实际上只是总和的偏移量。所以,

>>> sum([1,2,3],10000)
10006

用于本机版本。对于那个笨拙的人来说,“轴出界”。