-3

我在 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。我应该怎么办?

4

2 回答 2

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
于 2013-08-03T17:52:59.533 回答
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]])
于 2013-08-03T17:46:51.210 回答