2013-08-03 131 views
-2

我在poscripter 2.7中复制粘贴了此程序。我也下载了python 2.7的numpy和scipy。nameerror:未定义名称'array'

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

您需要进口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]]) 
+0

哦!谢谢我有一个问题。为什么'scipy'和'numpy'不要大胆,不要在我的pyscripter中将它们的颜色更改为蓝色?像这样:http://docs.scipy.org/doc/scipy/reference/教程/ linalg.html – jack

+0

我不知道;我自己不使用pyscripter。 –

+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