从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中强大的命令行库click入门教程
Dec 26 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
Python小进度条显示代码
Mar 05 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python程序文件扩展名知识点详解
Feb 27 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
python自动化之如何利用allure生成测试报告
May 02 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 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中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
js数组实现权重概率分配
2017/09/12 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
python实现动态数组的示例代码
2019/07/15 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
外企C语言笔试题
2013/11/10 面试题
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
收款委托书
2014/10/14 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
给领导敬酒词
2015/08/12 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书