从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 30 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
使用python实现接口的方法
Jul 07 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
基于python修改srt字幕的时间轴
Feb 03 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 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生成制作验证码代码详解(推荐)
2016/06/12 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
详解Python中的测试工具
2019/06/09 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python实现文件的分割与合并
2019/08/29 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
书香校园活动方案
2014/02/28 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Python实现打乒乓小游戏
2021/09/25 Python
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
Python Flask实现进度条
2022/05/11 Python