Python使用numpy产生正态分布随机数的向量或矩阵操作示例


Posted in Python onAugust 22, 2018

本文实例讲述了Python使用numpy产生正态分布随机数的向量或矩阵操作。分享给大家供大家参考,具体如下:

简单来说,正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。一般的正态分布可以通过标准正态分布配合数学期望向量和协方差矩阵得到。如下代码,可以得到满足一维和二维正态分布的样本。

示例1(一维正态分布):

# coding=utf-8
'''
作者:采石工
来源:知乎
'''
import numpy as np
from numpy.linalg import cholesky
import matplotlib.pyplot as plt
sampleNo = 1000;
# 一维正态分布
# 下面三种方式是等效的
mu = 3
sigma = 0.1
np.random.seed(0)
s = np.random.normal(mu, sigma, sampleNo )
plt.subplot(141)
plt.hist(s, 30, normed=True)
np.random.seed(0)
s = sigma * np.random.randn(sampleNo ) + mu
plt.subplot(142)
plt.hist(s, 30, normed=True)
np.random.seed(0)
s = sigma * np.random.standard_normal(sampleNo ) + mu
plt.subplot(143)
plt.hist(s, 30, normed=True)
# 二维正态分布
mu = np.array([[1, 5]])
Sigma = np.array([[1, 0.5], [1.5, 3]])
R = cholesky(Sigma)
s = np.dot(np.random.randn(sampleNo, 2), R) + mu
plt.subplot(144)
# 注意绘制的是散点图,而不是直方图
plt.plot(s[:,0],s[:,1],'+')
plt.show()

运行结果:

Python使用numpy产生正态分布随机数的向量或矩阵操作示例

示例2(正态分布):

#-*- coding:utf-8 -*-
# Python实现正态分布
# 绘制正态分布概率密度函数
import numpy as np
import matplotlib.pyplot as plt
import math
u = 0  # 均值μ
u01 = -2
sig = math.sqrt(0.2) # 标准差δ
x = np.linspace(u - 3*sig, u + 3*sig, 50)
y_sig = np.exp(-(x - u) ** 2 /(2* sig **2))/(math.sqrt(2*math.pi)*sig)
print x
print "="*20
print y_sig
plt.plot(x, y_sig, "r-", linewidth=2)
plt.grid(True)
plt.show()

运行结果:

Python使用numpy产生正态分布随机数的向量或矩阵操作示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Anaconda2 5.2.0安装使用图文教程
Sep 19 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
python字典的常用方法总结
Jul 31 Python
python修改字典键(key)的方法
Aug 05 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
3种python调用其他脚本的方法
Jan 06 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
如何利用Python写个坦克大战
Nov 18 Python
如何在Python中创建二叉树
Mar 30 Python
用Python将mysql数据导出成json的方法
Aug 21 #Python
windows下python 3.6.4安装配置图文教程
Aug 21 #Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 #Python
Python socket实现的简单通信功能示例
Aug 21 #Python
Python多进程原理与用法分析
Aug 21 #Python
python安装twisted的问题解析
Aug 21 #Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 #Python
You might like
各种咖啡的英文名子是什么
2021/03/03 新手入门
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php array_map()函数实例用法
2021/03/03 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
详解async/await 异步应用的常用场景
2019/05/13 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
Python Queue模块详细介绍及实例
2016/12/27 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
python list元素为tuple时的排序方法
2018/04/18 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
考博专家推荐信模板
2013/12/02 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
银行业务授权委托书
2014/10/10 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
考研经验交流会策划书
2015/11/02 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript