从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调用C/C++动态链接库的方法详解
Jul 22 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
详解python基础之while循环及if判断
Aug 24 Python
Python中表示字符串的三种方法
Sep 06 Python
Python面向对象之继承代码详解
Jan 29 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 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文件缓存内容保存格式实例分析
2014/08/20 PHP
php数组分页实现方法
2016/04/30 PHP
php微信开发接入
2016/08/27 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
js实现3D旋转相册
2020/08/02 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
销售员个人求职的自我评价
2014/02/10 职场文书
公司门卫岗位职责
2014/03/15 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
商业街策划方案
2014/05/31 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL