AttributeError w python / numpy podczas konstruowania funkcji dla pewnych wartości

Piszę kod Pythona, aby wygenerować i wykreślić funkcje „super Gaussa”, takie jak:

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)

Poniższy kod tworzy tylko jego fabułę. Z jakiegoś powodu nie mogę pojąć, że ten kod działa dobrze, gdy używasz domyślnej wartości 8 dlaNlub dla wartościN do 13. KiedyN ma 14 lub więcej, funkcja ulega awarii z komunikatem o błędzie:

AttributeError: 'float' object has no attribute 'exp'

Na linii powrotu w definicji funkcji. Jakieś pomysły? Ponieważ jedyną rzeczą w tej linii, która używa .exp, jestnumpy.exp komunikat o błędzie wydaje się to sugerowaćnumpy jest interpretowany jako zmiennoprzecinkowy, ale tylko dla dużych wartościN...

Używam python 3.3.2 z numpy 1.7.1 i scipy 0.12.0

questionAnswers(1)

yourAnswerToTheQuestion