相关疑难解决方法(0)

构造某些值的函数时,python/numpy中的AttributeError

我正在编写Python代码来生成和绘制"超高斯"函数,如:

def supergaussian(x, A, mu, sigma, offset, N=8):
    """Supergaussian function, amplitude A, centroid mu, st dev sigma, exponent N, with constant offset"""
    return A * (1/(2**(1+1/N)*sigma*2*scipy.special.gamma(1+1/N))) * numpy.exp(-numpy.absolute(numpy.power(x-mu,N))/(2*sigma**N)) + offset

init_x = numpy.arange(-100,100,1.0)
init_y = supergaussian(init_x, 1, 0, 25, 0, N=12)
Run Code Online (Sandbox Code Playgroud)

下面的代码就是一个情节.由于我无法理解的原因,当使用默认值8 N或者N最多13的值时,此代码可以正常工作.当N为14或更高时,该函数崩溃并显示错误消息:

AttributeError: 'float' object has no attribute 'exp'
Run Code Online (Sandbox Code Playgroud)

在函数定义的返回行.有任何想法吗?因为在该行中唯一使用.exp的是numpy.exp错误消息似乎意味着它numpy被解释为一个浮点数,但仅适用于大值N......

我正在使用numpy 1.7.1和scipy 0.12.0运行python 3.3.2

python numpy scipy

7
推荐指数
1
解决办法
8688
查看次数

标签 统计

numpy ×1

python ×1

scipy ×1