我认为randn
会返回一个属于正态分布的随机数,其平均值为0,标准差为1.因此,我希望得到一个范围内的数字(0,1)。但我得到的是一个不在范围(0,1)内的数字。
我做错了什么?
答案 0 :(得分:12)
您正在考虑统一分配。理论上,正态分布可以具有非常大的数,具有非常低的概率。
randn
的平均值为0,标准差为1.正态分布为钟形曲线/高斯形状,平均概率最高,概率相对于标准偏差下降。
您正在寻找的是rand
,它来自均匀随机分布的“样本”,它给出了0到1之间的数字,并且在所有点都有均匀概率。
答案 1 :(得分:5)
答案 2 :(得分:2)
另一种可能的混淆来源:
平均0
和方差 1
的{{3}}通常表示为 N (0,1)。这有时被称为标准正态分布,并且暗示样本是从所有实数中提取的,即范围(-∞,+∞),具有均值0
和方差1
。在这种情况下,标准差也是1
,但是这种表示法指定了方差(许多人将其搞砸了)。变换 N (μ,σ 2 )=μ+σ N (0,1),其中μ是平均值,σ 2 是方差,σ是标准差,非常有用。
类似地,开放区间(0,1)上的normal distribution通常表示为 U (0,1)。这通常被称为标准均匀分布,并且暗示样本仅从范围(0,1)中均匀地绘制。类似地,转换 U (a,b)= a +(b - a) U (0,1),其中a和b表示缩放区间的边缘,很有用。
请注意,除了作为描述每个分布的参数之外,这两种情况下的0
和1
并不代表相同的东西。从这两个分布中采样的范围称为continuous uniform distribution。