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程序的方法
Apr 21 Python
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python编程之多态用法实例详解
May 19 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
带你了解python装饰器
Jun 15 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
keras K.function获取某层的输出操作
Jun 29 Python
python实现录制全屏和选择区域录屏功能
Feb 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
四好少年事迹材料
2014/01/12 职场文书
自动一体化专业求职信
2014/03/15 职场文书
付款委托书范本
2014/10/05 职场文书
读书笔记格式
2015/07/02 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android