我尝试在python中创建正态分布。我做了以下代码:
prior = []
variance = 20
mean = 0.5
x = -100
while x <= 100:
normal_distribution = 1/np.sqrt(1*np.pi*variance*variance)*np.exp(np.power(x-mean,2)/(2*variance*variance))
prior.extend(normal_distribution)
++x
但是我收到一个类型错误:
TypeError: 'numpy.float64' object is not iterable
我尝试过normal_distribution = ...在while循环之外有一个值。
我不完全理解为什么它不能迭代。
最佳答案
存在三个问题:
您要的是.append
,而不是.extend
;这是错误的根源,因为.extend
需要可迭代对象作为参数,因此可以将其每个元素附加到列表中。您要添加一个元素-这就是.append
的作用
您的pdf公式无效,您应该有2
而不是平方根下的1
exp
内的否定
您的variance
变量用于std
的含义1/np.sqrt(2*np.pi*variance)*np.exp(-(x-mean)**2/(2*variance))
python中没有++x
这样的东西,请使用x += 1
关于python - 在python中创建正态分布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33574174/