我有以下简单的错误代码
from numpy import random, sqrt
points = random.randn(20,3);
points = points / sqrt(sum(points**2,1))
在ipython中(使用%autoreload 2
)如果我将其复制并粘贴到终端中,我会得到一个ValueError
,正如人们所期望的那样。如果我将其保存为文件并使用%run,那么它运行时不会出错(它不应该)。
这里发生了什么?
答案 0 :(得分:2)
我只是想出来了,但我写了这个问题,这可能对其他人有用。
numpy sum
和本地sum
之间存在差异。将第一行更改为
from numpy import random, sqrt, sum
将其修复为%run
默认情况下使用本机版本(至少使用我的设置)。本机运行不接受轴参数,但也不会引发错误,因为它是start
参数,实际上只是总和的偏移量。所以,
>>> sum([1,2,3],10000)
10006
用于本机版本。对于那个笨拙的人来说,“轴出界”。