Nie potrzebujesz biblioteki do prostego gaussowskiego 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]
Uwaga: to zawsze zwraca listę dziwne długości skupione wokół 0. Przypuszczam, że mogą wystąpić sytuacje, gdzie chcesz mieć jeszcze długości Gaussa z wartościami dla x = [... -1,5, -0,5, 0,5, 1,5, ...], ale w tym przypadku, będzie musiał nieco inną formułę i zostawię to dla was;) przykład
Wyjście z wartościami domyślnymi 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
Spodziewałem się, że powróci to jak krzywa guassowska po plt.hist (g), ale jest to pół-zgadnij – Moj