ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

numpy.random.normal学习笔记

2021-05-06 19:01:22  阅读:257  来源: 互联网

标签:loc scale normal random numpy 正态分布 size


  • numpy.random.normal学习笔记用例:

  • 正态分布=高斯分布
  • mean=loc=均值(或称期待值) stddev=scale=标准差 shape=size=输出形状,二者在处理这个参数时候(a,b)=[a,b],其中,numpy的normal对参数格式要求更灵活一些。 比如创建随机数的一行两列数组:

    np.random.normal([2])=np.random.normal((2))=np.random.normal(0,1,2)注意最后一种用法必须带上前面两个参数,否则传递参数时候会把2当作均值传递
    而tf的random_normal对shape的要求不能是数字,必须为[]或()格式
    ————————————————————————————————————————————————————————————————————————————————

  • 对于numpy.random.normal函数,有三个参数(loc, scale, size),分别代表生成的高斯分布的随机数的均值、方差以及输出的size.
    numpy.random.normal(loc=0.0, scale=1.0, size=None)

  • 意义如下:

    参数loc(float):正态分布的均值,对应着这个分布的中心。loc=0说明这一个以Y轴为对称轴的正态分布;
    参数scale(float):正态分布的标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦。
    参数size(int 或者整数元组):输出的值赋在shape里,默认为None。
    ————————————————————————————————————————————————————————————————————————————————

  • 功能:
    从正态(高斯)分布中抽取随机样本。

  • 渊源:
  • 正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由棣莫弗(Abraham de Moivre)在求二项分布的渐近公式中得到。
    • 在其后200年,高斯和拉普拉斯也分别发现了正态分布的概率密度函数。自然界中有许多符合正态分布的案例。例如,它可以描述样本受大量微小随机扰动影响的常见分布,其中,每个扰动都有自己独特的分布。

    C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。 正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线


    参数:

变量名数据类型功能
loc 浮点型数据或者浮点型数据组成的数组 分布的均值(中心)
scale 浮点型数据或者浮点型数据组成的数组 分布的标准差(宽度)
size 整数或者整数组成的元组,可选参数 输出值的维度。如果给定的维度为(m, n, k),那么就从分布中抽取m * n * k个样本。如果size为None(默认值)并且locscale均为标量,那么就会返回一个值。否则会返回np.broadcast(loc, scale).size个值
  • 返回值:
变量名数据类型功能
out n维数组或标量 从含参的正态分布中抽取的随机样本
  • 备注:

高斯分布的概率密度函数为 p ( x ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 p(x)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}p(x)=2πσ2​1​e−2σ2(x−μ)2​其中μ \muμ代表均值,σ \sigmaσ代表标准差,标准差的平方σ 2 \sigma^2σ2称作方差。 函数在均值位置点取到峰值,当标准差增大的时候,其宽度也会增加(函数在x − σ x-\sigmax−σ到x + σ x+\sigmax+σ之间的面积为其总面积的0.607倍)。这意味着numpy.random.normal更有可能返回靠近均值的样本而不是那些远离均值的样本。

 

 

 

最后对比参考TF和NP:


tf.random_normal()函数用于从服从指定正太分布的数值中取出指定个数的值。
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)


np.random.normal()给出均值为loc,标准差为scale的高斯随机数(场).
numpy.random.normal(loc=0.0, scale=1.0, size=None)

标签:loc,scale,normal,random,numpy,正态分布,size
来源: https://www.cnblogs.com/seven18/p/14736429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有