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 matplotlib 在指定的两个点之间连线方法
May 25 Python
python+splinter自动刷新抢票功能
Sep 25 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
python assert的用处示例详解
Apr 01 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Python封装成可带参数的EXE安装包实例
Aug 24 Python
详解使用Python下载文件的几种方法
Oct 13 Python
Python 列表的清空方式
Jan 13 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
如何一键升级Python所有包
Nov 05 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
深入apache host的配置详解
2013/06/09 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
python模拟Django框架实例
2016/05/17 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python实现杨氏矩阵查找
2019/03/02 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
Python高并发和多线程有什么关系
2020/11/14 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
期末自我鉴定
2014/01/23 职场文书
商超业务员岗位职责
2014/03/12 职场文书
小学班主任寄语大全
2014/04/04 职场文书
最常使用的求职信
2014/05/25 职场文书
镇创先争优活动总结
2014/08/28 职场文书
决心书格式范文
2015/09/23 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers