python - 在Python中创建正态分布

标签 python iteration normal-distribution

我尝试在 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 循环之外有一个值。 我不太明白为什么它不能迭代。

最佳答案

存在三个问题:

  1. 您正在寻找.append ,不是.extend ;这是错误的根源,如 .extend需要可迭代对象作为参数,因此它可以将每个元素附加到列表中。您正在添加一个元素 - 这就是 .append是为了
  2. 您的 pdf 公式无效,您应该有

    • 2而不是1平方根下
    • 里面的否定 exp
    • 您的variance变量的使用含义为 std

    1/np.sqrt(2*np.pi*variance)*np.exp(-(x-mean)**2/(2*variance))

  3. 不存在++x这样的东西。在Python中,使用x += 1

关于python - 在Python中创建正态分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574174/

相关文章:

python - 带有 C 指针的 Pickle Cython 类

swift4 - 如何在 Swift 4 中从正态分布返回 float 或 double ?

python - pandas:组合行中的文本

python - 使用用 keras 保存的 ML.NET 加载模型

python - PySpark Dataframe fillna(0) 给我一个 "ambiguous reference"错误。只是尝试用 0 填充 NULL 值

python - 如何使用数据帧将这些嵌套的 for 循环压缩为 python 中的列表理解?

Javascript 循环和迭代

algorithm - 快速排序:迭代或递归

Python:计算N个多元正态分布的值的可能性

r - 如何使用[R]中的函数曲线绘制正态曲线?