numpy.random.normal()函数的最大和最小间隔是多少?

时间:2019-01-12 15:22:30

标签: python numpy

2 个答案:

答案 0 :(得分:1)

对于正态分布,与平均值相差超过10个标准偏差的值极不可能,但并非不可能。而且,距离<20>标准偏差的值极端不太可能,但仍然不是不可能。

例如,人类的身高与正态分布相似,但不完全相同,因为身高小于零是不可能的。对于正态分布,这是有可能的,只是非常不可能的。

答案 1 :(得分:1)

基础

如果您不输入任何参数,则np.random.normal()将从standard normal distribution中提取,其中mean0,而std1.0的标准偏差)。

任何给定值将超出间隔的可能性

关于分布的参数,您可以使用以下函数计算值将超出mean +/- z(其中z是任意值)的几率:

import scipy.special as sps

def oddsbeyond(z, std=1):
    return 1 - sps.erf((z/std)/2**.5)

有关上述功能的更多详细信息,请参见wiki article on the error function erf

这是一张“表”,其赔率可能位于mean +/- z*std的{​​{1}}之外:

z = (0, 1, ..., 9)

输出:

print(np.array([np.arange(10), oddsbeyond(np.arange(10))]).T)

因此,[[0.00000000e+00 1.00000000e+00] [1.00000000e+00 3.17310508e-01] [2.00000000e+00 4.55002639e-02] [3.00000000e+00 2.69979606e-03] [4.00000000e+00 6.33424837e-05] [5.00000000e+00 5.73303144e-07] [6.00000000e+00 1.97317529e-09] [7.00000000e+00 2.55961918e-12] [8.00000000e+00 1.22124533e-15] [9.00000000e+00 0.00000000e+00]] 的值加上均值将位于均值的95%标准差之内,而到您获得均值的2.0均值标准差时,超出该值的分数太小了,以至于可以使用9.0值(标准的Numpy double)轻松表达。