eva*_*n54 0 python nameerror spyder
我正在使用spyder并编写了以下类:
class Ray:
def __init__(self, r, p, k):
if r.shape == (3,):
self.r = r
if p.shape == (3,):
self.p = p
if k.shape == (3,):
self.k = k
r = array(range(3))
p = array(range(3))
k = array(range(3))
Run Code Online (Sandbox Code Playgroud)
它存储在/ home/user/workspace/spyder/project中,控制台工作目录就是那个.在控制台中,我可以运行一个数组(范围(3)),它返回一个值为0,1,2的数组.但是在做的时候
import ray
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ray.py", line 8, in <module>
class Ray:
File "ray.py", line 20, in ray
r = array(range(3));
NameError: name 'array' is not defined
Run Code Online (Sandbox Code Playgroud)
编辑:
默认情况下spyder有以下行为,不太明白为什么array()默认工作我认为它只是numpy的一部分.
import numpy as np # NumPy (multidimensional arrays, linear algebra, ...)
import scipy as sp # SciPy (signal and image processing library)
import matplotlib as mpl # Matplotlib (2D/3D plotting library)
import matplotlib.pyplot as plt # Matplotlib's pyplot: MATLAB-like syntax
from mayavi import mlab # 3D plotting functions
from pylab import * # Matplotlib's pylab interface
ion() # Turned on Matplotlib's interactive mode
Within Spyder, this intepreter also provides:
* special commands (e.g. %ls, %pwd, %clear)
* system commands, i.e. all commands starting with '!' are subprocessed
(e.g. !dir on Windows or !ls on Linux, and so on)
Run Code Online (Sandbox Code Playgroud)
你需要from numpy import array.
这是由Spyder控制台为您完成的.但是在一个程序中,你必须做必要的进口; 例如,优点是你的程序可以由没有Spyder的人运行.
我不确定Spyder默认为你导入什么.array可以通过from pylab import *或通过等效方式导入from numpy import *.如果您想直接将代码从Spyder控制台复制到程序,您可能需要from numpy import *甚至是from pylab import *.不过,官方不建议在程序中执行此操作,因为这会污染程序的命名空间; 做import numpy as np,然后np.array(…)是习惯.
| 归档时间: |
|
| 查看次数: |
15757 次 |
| 最近记录: |