从np.random.normal()到正态分布的拟合操作


Posted in Python onJune 02, 2021

先看伟大的高斯分布(Gaussian Distribution)的概率密度函数(probability density function):

从np.random.normal()到正态分布的拟合操作

对应于numpy中:

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数的意义为:

loc:float

此概率分布的均值(对应着整个分布的中心centre)

scale:float

此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)

size:int or tuple of ints

输出的shape,默认为None,只输出一个值

我们更经常会用到的np.random.randn(size)所谓标准正态分布从np.random.normal()到正态分布的拟合操作

对应于np.random.normal(loc=0, scale=1, size)。

采样(sampling)

# 从某一分布(由均值和标准差标识)中获得样本
mu, sigma = 0, .1
s = np.random.normal(loc=mu, scale=sigma, size=1000)

也可使用scipy库中的相关api(这里的类与函数更符合数理统计中的直觉):

import scipy.stats as st
mu, sigma = 0, .1
s = st.norm(mu, sigma).rvs(1000)

校验均值和方差:

>>> abs(mu < np.mean(s)) < .01
True
>>> abs(sigma-np.std(s, ddof=1)) < .01
True
            # ddof,delta degrees of freedom,表示自由度
            # 一般取1,表示无偏估计,

 

拟合

我们看使用matplotlib.pyplot便捷而强大的语法如何进行高斯分布的拟合:

import matplotlib.pyplot as plt
count, bins, _ = plt.hist(s, 30, normed=True)
        # normed是进行拟合的关键
        # count统计某一bin出现的次数,在Normed为True时,可能其值会略有不同
plt.plot(bins, 1./(np.sqrt(2*np.pi)*sigma)*np.exp(-(bins-mu)**2/(2*sigma**2), lw=2, c='r')
plt.show()

或者:

s_fit = np.linspace(s.min(), s.max())
plt.plot(s_fit, st.norm(mu, sigma).pdf(s_fit), lw=2, c='r')

从np.random.normal()到正态分布的拟合操作

np.random.normal()的含义及实例

这是个随机产生正态分布的函数。(normal 表正态)

先看一下官方解释:

有三个参数

loc:正态分布的均值,对应着这个分布的中心.代表下图的μ

scale:正态分布的标准差,对应分布的宽度,scale越大,正态分布的曲线 越矮胖,scale越小,曲线越高瘦。 代表下图的σ

size:你输入数据的shape,例子:

下面展示一些 内联代码片。

// An highlighted block
a=np.random.normal(0, 1, (2, 4))
print(a)
输出:
[[-0.29217334  0.41371571  1.26816017  0.46474676]
 [ 1.33271487  0.80162296  0.47974157 -1.49748788]]

看这个图直观些:

从np.random.normal()到正态分布的拟合操作

以下为官方文档:

从np.random.normal()到正态分布的拟合操作

从np.random.normal()到正态分布的拟合操作

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫常用的模块分析
Aug 29 Python
Python fileinput模块使用实例
May 28 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
Python 类的继承实例详解
Mar 25 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python3 replace()函数使用方法
Mar 19 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
flask框架url与重定向操作实例详解
Jan 25 Python
python 下载文件的几种方法汇总
Jan 06 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 Python
Python读取和写入Excel数据
Apr 20 Python
golang特有程序结构入门教程
Jun 02 #Python
Python中的np.argmin()和np.argmax()函数用法
Jun 02 #Python
python之np.argmax()及对axis=0或者1的理解
Python import模块的缓存问题解决方案
Jun 02 #Python
Python3 类型标注支持操作
Jun 02 #Python
python 实现两个变量值进行交换的n种操作
聊聊Python中关于a=[[]]*3的反思
You might like
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
深入了解javascript中的prototype与继承
2013/04/14 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python 变量的创建过程详解
2019/09/02 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
工作自我评价怎么写
2014/01/29 职场文书
音乐教师求职信
2014/06/28 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
教师远程研修感悟
2015/11/18 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle