nameerror:未定义名称“array”

时间:2013-08-03 17:45:12

标签: python python-2.7 numpy

我在pyscripter 2.7中复制粘贴了这个程序。我也为python 2.7下载了numpy和scipy。

import numpy as np
from scipy import linalg
A = np.array([[1,2],[3,4]])
array([[1, 2],
      [3, 4]])
linalg.inv(A)
array([[-2. ,  1. ],
      [ 1.5, -0.5]])
A.dot(linalg.inv(A)) #double check
array([[  1.00000000e+00,   0.00000000e+00],
      [  4.44089210e-16,   1.00000000e+00]])

但它没有运行,看到这个:Name Error: name 'array' is not defined。 我该怎么办?

2 个答案:

答案 0 :(得分:2)

您似乎已将输出附加到您尝试运行的脚本中,因此出现错误。 执行以下操作会产生类似的错误 -

>>> array([1, 2])

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    array([1, 2])
NameError: name 'array' is not defined

这与你的剧本相符。

>>> A = np.array([[1, 2], [3, 4]])
>>> A
array([[1, 2],
       [3, 4]])

你的原始剧本是。

import numpy as np
from scipy import linalg
A = np.array([[1,2],[3,4]])
linalg.inv(A)
A.dot(linalg.inv(A)) #double check

答案 1 :(得分:0)

您需要导入 array类型,或直接引用它:

from numpy import array

或使用np.array来引用它。

但是,您似乎正在查看脚本的输出以及代码本身:

import numpy as np
from scipy import linalg
A = np.array([[1,2],[3,4]])
linalg.inv(A)
A.dot(linalg.inv(A)) #double check

在我的交互式Python解释器提示符中运行该代码,我看到:

>>> import numpy as np
>>> from scipy import linalg
>>> A = np.array([[1,2],[3,4]])
>>> linalg.inv(A)
array([[-2. ,  1. ],
       [ 1.5, -0.5]])
>>> A.dot(linalg.inv(A)) #double check
array([[  1.00000000e+00,   0.00000000e+00],
       [  8.88178420e-16,   1.00000000e+00]])