在python中画正态分布图像的实例


Posted in Python onJuly 08, 2019

1.正态分布简介

正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution),是一个非常重要也非常常见的连续概率分布。正态分布大家也都非常熟悉,下面做一些简单的介绍。

假设随机变量XX服从一个位置参数为μμ、尺度参数为σσ的正态分布,则可以记为:

在python中画正态分布图像的实例

而概率密度函数为

在python中画正态分布图像的实例

2.在python中画正态分布直方图

先直接上代码

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt


def demo1():
  mu ,sigma = 0, 1
  sampleNo = 1000
  np.random.seed(0)
  s = np.random.normal(mu, sigma, sampleNo)

  plt.hist(s, bins=100, normed=True)
  plt.show()

上面是一个标准正态分布的直方图。最后输出的图像为:

在python中画正态分布图像的实例

很多同学心里会有疑惑:这个图像看上去虽然是有点奇怪,虽然形状有点像正态分布,但是差得还比较多嘛,不能算是严格意义上的正态分布。

为什么会有这种情况出现呢?其实原因很简单,代码中我们设定的smapleno = 1000。这个数量并不是很大,所以整个图像看起来分布并不是很规则,只是有大致的正态分布的趋势。如果我们将这个参数加大,相当于增加样本数量,那么整个图像就会更加接近正态分布的形状。跟抛硬币的原理一致,抛的次数越多,正面与反面的出现概率更接近50%。

如果我们将sampleno设置为1000000,分布图像如下。

在python中画正态分布图像的实例

下面这个图像是不是看起来就漂亮多了!

3.画直方图与概率分布曲线

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

def demo2():
  mu, sigma , num_bins = 0, 1, 50
  x = mu + sigma * np.random.randn(1000000)
  # 正态分布的数据
  n, bins, patches = plt.hist(x, num_bins, normed=True, facecolor = 'blue', alpha = 0.5)
  # 拟合曲线
  y = mlab.normpdf(bins, mu, sigma)
  plt.plot(bins, y, 'r--')
  plt.xlabel('Expectation')
  plt.ylabel('Probability')
  plt.title('histogram of normal distribution: $\mu = 0$, $\sigma=1$')

  plt.subplots_adjust(left = 0.15)
  plt.show()

最后得到的图像为:

在python中画正态分布图像的实例

以上这篇在python中画正态分布图像的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据日期返回星期几的方法
Jul 06 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
实例详解Python装饰器与闭包
Jul 29 Python
解决Django连接db遇到的问题
Aug 29 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
浅析PEP572: 海象运算符
Oct 15 Python
python如何实现DES加密
Sep 21 Python
Python 多进程、多线程效率对比
Nov 19 Python
Python 多进程原理及实现
Dec 21 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 Python
Python中with上下文管理协议的作用及用法
Mar 18 Python
python实现beta分布概率密度函数的方法
Jul 08 #Python
python中pip的使用和修改下载源的方法
Jul 08 #Python
python绘制直方图和密度图的实例
Jul 08 #Python
搭建python django虚拟环境完整步骤详解
Jul 08 #Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 #Python
33个Python爬虫项目实战(推荐)
Jul 08 #Python
详解python中的time和datetime的常用方法
Jul 08 #Python
You might like
一个PHP的QRcode类与大家分享
2011/11/13 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
详解微信小程序input标签正则初体验
2018/08/18 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
详解Python学习之安装pandas
2019/04/16 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
公务员培训心得体会
2013/12/28 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
刘胡兰观后感
2015/06/16 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
python实现自定义日志的具体方法
2021/05/28 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android