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的Flask框架中实现分页功能的教程
Apr 20 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
python3判断url链接是否为404的方法
Aug 10 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
python实现将汉字保存成文本的方法
Nov 16 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Python程序暂停的正常处理方法
Nov 07 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
python 如何用map()函数创建多线程任务
Apr 07 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
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
js实现数字滚动特效
2019/12/16 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
python中as用法实例分析
2015/04/30 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
文明家庭先进事迹材
2014/01/27 职场文书
初中生自我评价
2014/02/01 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
协议书格式
2014/04/23 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
终止劳动合同通知书
2015/04/16 职场文书
防卫过当辩护词
2015/05/21 职场文书
Django 如何实现文件上传下载
2021/04/08 Python