为什么返回np.random.normal(10 - 1. /(x + 0.1),0.5)有效

时间:2015-03-18 14:04:00

标签: python list numpy random parameters

正如我们在numpy.random.normal

的文档中看到的那样
  

numpy.random.normal(loc = 0.0,scale = 1.0,size = None)绘制随机样本   来自正常(高斯)分布。

     

正态分布的概率密度函数,首先   由De Moivre和200年后由高斯和拉普拉斯衍生而来   独立[R217],因其常被称为钟形曲线   特征形状(见下面的例子)。

     

正常分布通常在自然界中发生。例如,它   描述了受影响的样品的常见分布   大量微小的随机干扰,每个都有自己独特的   分配[R217]。参数:

     

loc:float

     

分布的平均值(“中心”)。

     

scale:float

     

分布的标准差(差价或“宽度”)。

     

size:整数的int或元组,可选

     

输出形状。如果给定的形状是例如(m,n,k),则m * n * k   抽取样本。默认值为None,在这种情况下单个值为   返回。

然后np.random.normal(10 - 1. / (x + 0.1), 0.5)

x = 10**np.linspace(-2, 0, 8)为什么有效
  • 参数loc应该是float?
  • 如果这样有效,它的含义是什么?

1 个答案:

答案 0 :(得分:3)

您的代码会绘制8个数字,每个数字来自不同的高斯分布。 x的值作为分布参数,但每个都用于在该分布中生成一个样本。

您的代码相当于:

np.random.normal(np.zeros(8), 0.5) + 10 - 1. / (x + 0.1)

即。使用正态分布生成8个数字并将它们移动x。