No necesita una biblioteca para un simple 1D gaussiano.
from math import pi, sqrt, exp
def gauss(n=11,sigma=1):
r = range(-int(n/2),int(n/2)+1)
return [1/(sigma * sqrt(2*pi)) * exp(-float(x)**2/(2*sigma**2)) for x in r]
Nota: Esta siempre devolverá una lista de longitud impar en torno a 0. supongo que puede haber situaciones en las que se quieren incluso una longitud de Gauss con valores para x = [..., -1.5, -0.5, 0.5, 1.5, ...], pero en ese caso, se necesitaría una fórmula ligeramente diferente y lo dejo a usted;) ejemplo
de salida con valores por defecto n = 11
, sigma = 1
:
>>> g = gauss()
1.48671951473e-06
0.000133830225765
0.00443184841194
0.0539909665132
0.241970724519
0.398942280401
0.241970724519
0.0539909665132
0.00443184841194
0.000133830225765
1.48671951473e-06
>>> sum(g)
0.99999999318053079
me esperaba que vuelve algo así como la curva Guassian después plt.hist (g), pero es un medio conjetura – Moj