Python 名称错误:名称';数组';没有定义
我在PyScripter2.7中复制粘贴了这个程序。我还下载了适用于python 2.7的numpy和scipyPython 名称错误:名称';数组';没有定义,python,python-2.7,numpy,Python,Python 2.7,Numpy,我在PyScripter2.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
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]])
但它不会运行,并且会看到:名称错误:未定义名称“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]])
您似乎已在试图运行的脚本中附加了输出,因此出现了错误。 执行以下命令会产生类似的错误-
>>> array([1, 2])
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
array([1, 2])
NameError: name 'array' is not defined
您的原始脚本是
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
哦谢谢,我有一个问题。为什么“scipy”和“numpy”在我的pyscripter中不大胆,也不把它们的颜色改成蓝色?就像这样:我不知道;我自己不使用pyscripter。不,卡拉是对的,数组行是经过修饰的输出…你复制粘贴了吗?这似乎有输出附加到它。
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