我在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
。
我该怎么办?
答案 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]])