【问题标题】:Differences between ipython %run and promtipython %run 和 promt 的区别
【发布时间】:2014-01-28 19:24:32
【问题描述】:

我有以下简单的错误代码

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

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

这是怎么回事?

【问题讨论】:

  • 这段代码没有抛出ValueError
  • 在我的 ipython shell 中有(因为它默认加载了 numpy)...见下文。

标签: python numpy ipython


【解决方案1】:

我刚刚想通了,但我已经写了这个问题,它可能对其他人有用。

这是numpy的sum和原生的sum的区别。将第一行更改为

from numpy import random, sqrt, sum

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

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

对于本机版本。 numpy 的“轴越界”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 2015-07-24
    • 2017-10-22
    • 2017-01-03
    • 2016-09-24
    • 2019-08-08
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多