2014-01-28 59 views
0

我有以下简单的错误代码差异与PROMT

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

在IPython中(与%autoreload 2),如果我复制并粘贴到终端,我得到一个ValueError正如人们所期望。如果我把它保存为一个文件并使用%run,那么它运行时没有错误(它不应该)。

这是怎么回事?

+1

这段代码没有引发'ValueError'。 –

+0

有在我的ipython外壳(因为它有numpy默认加载)...见下文。 – Lucas

回答

2

我刚刚弄明白了,但是我写过这个问题,可能对其他人有用。

这是numpy sum和原生sum之间的差异。第一行更改为

from numpy import random, sqrt, sum 

修复它为%run默认使用本机版本(至少我的设置)。本机运行不带轴参数,但也不会抛出错误,因为它是一个start参数,它实际上只是和总和的偏移量。因此,

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

为本地版本。并且对于这个颠簸的“轴出界”。