Non hai bisogno di una libreria per un semplice gaussiano 1D.
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: Questo sarà sempre tornare una strana lista di lunghezza centrato circa 0. Suppongo che ci possono essere situazioni in cui si vorrebbe un ancora di lunghezza gaussiana con valori per x = [..., -1.5, -0.5, 0.5, 1.5, ...], ma in quel caso, si avrebbe bisogno di una formula leggermente diversa e lascio che a voi;) esempio
uscita con valori di default, 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
mi aspettavo restituisce qualcosa come curva Guassian dopo plt.hist (g), ma è un mezzo congettura – Moj