从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 threading模块操作多线程介绍
Apr 08 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
用python实现k近邻算法的示例代码
Sep 06 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
基于Python实现简单学生管理系统
Jul 24 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
Python filter过滤器原理及实例应用
Aug 18 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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数组输出html表格的方法
2014/02/24 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
[原创]图片分页查看
2006/08/28 Javascript
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
学习python可以干什么
2019/02/26 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
django ORM之values和annotate使用详解
2020/05/19 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
Linux的主要特性
2016/09/03 面试题
银行办理业务介绍信
2014/01/18 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
倡议书的格式写法
2015/04/28 职场文书
三八妇女节主持词
2015/07/04 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
DE1107机评
2022/04/05 无线电