正态分布

时间:2019-01-30 14:16:41

标签: python python-3.x statistics gaussian

在给定平均值且有上下误差的情况下,计算分裂正态分布的最佳方法是什么?

到目前为止,我有:

from random import choice, gauss
def random_split_normal(mu: float, upper_sigma: float, lower_sigma:int) -> float:
    return abs(gauss(0.0, 1.0)) * choice([upper_sigma, -lower_sigma]) + mu

我多次调用它来生成一个数组:

random_array = []
for _ in range(1000):
    random_array.append(random_split_normal(1.0, 2.0, 1.0))

在制作random_array的直方图时会产生以下结果:

enter image description here

我想知道随机使用upper_sigmalower_sigma是执行此操作的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您的解决方案在数学上是等效的,但是效率较低,因为您不必要地使用abs()和choice()来查看gauss()的符号。

这应该接近定义。我还改正了sigma,使其与我们通常的数字线方向一致(左侧为负无穷大)

<form>
  <select multiple="multiple" name="city" id="city_name">
    <option value="a">A</option>
    <option value="b"> B </option>
    <option value="c"> C</option>
    <option value="d"> D</option>
  </select>
  <button type="button" onclick="get_city_name()">select multiple</button>
  <select multiple="multiple" name="get" id="new_list">
  </select>
</form>