我编写了以下代码,但失败了ValueError
。
from numpy import *
from pylab import *
t = arange(-10, 10, 20/(1001-1))
x = 1./sqrt(2*pi)*exp(power(-(t*t), 2))
具体来说,我收到的错误信息是:
ValueError: a <= 0
x = 1./sqrt(2*pi)*exp(power(-(t*t), 2))
File "mtrand.pyx", line 3214, in mtrand.RandomState.power (numpy\random\mtrand\mtrand.c:24592)
Traceback (most recent call last):
File "D:\WinPython-64bit-3.4.4.3Qt5\notebooks\untitled1.py", line 6, in <module>
知道问题可能在这里吗?
答案 0 :(得分:2)
numpy
和pylab
都定义了一个名为power
的函数,但它们完全不同。由于您使用pylab
numpy
之后导入import *
,因此pylab
版本就是您最终使用的版本。什么是pylab.power
?来自docstring:
power(a, size=None)
Draws samples in [0, 1] from a power distribution with positive exponent a - 1.
故事的寓意:不要使用import *
。在这种情况下,通常使用import numpy as np
:
import numpy as np
t = np.arange(-10, 10, 20/(1001-1))
x = 1./np.sqrt(2*np.pi)*np.exp(np.power(-(t*t), 2))
进一步阅读: