从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 类与元类的深度挖掘 I【经验】
May 06 Python
python在每个字符后添加空格的实例
May 07 Python
python re模块的高级用法详解
Jun 06 Python
详解python 注释、变量、类型
Aug 10 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
python程序如何进行保存
Jul 03 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 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静态类的原罪详解
2013/05/06 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
Node.js开发第三方微信公众平台
2017/06/05 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
JS原生瀑布流效果实现
2019/04/26 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
详解Python文件修改的两种方式
2019/08/22 Python
postman和python mock测试过程图解
2020/02/22 Python
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
人事文员岗位职责
2014/02/16 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
学校运动会开幕词
2016/03/03 职场文书
Python中文纠错的简单实现
2021/07/07 Python
python的变量和简单数字类型详解
2021/09/15 Python
python使用torch随机初始化参数
2022/03/22 Python