我尝试在 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))
-
不存在
++x
这样的东西。在Python中,使用x += 1
关于python - 在Python中创建正态分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574174/