【问题标题】:nameerror:name 'array' is not defined [closed]名称错误:名称“数组”未定义[关闭]
【发布时间】:2013-08-03 17:45:12
【问题描述】:

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

【问题讨论】:

  • 你复制粘贴了吗?这似乎附加了输出。

标签: python python-2.7 numpy


【解决方案1】:

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

>>> 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

【讨论】:

    【解决方案2】:

    需要导入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]])
    

    【讨论】:

    • 哦!谢谢我有一个问题。为什么 'scipy' 和 'numpy' 在我的 pyscripter 中不要加粗并且不要将它们的颜色更改为蓝色?就像这样:docs.scipy.org/doc/scipy/reference/tutorial/linalg.html
    • 我不知道;我自己不使用 pyscripter。
    • 不,Kalra 是对的,数组线是美化输出...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2022-01-01
    • 2021-04-02
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多