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基础教程之循环介绍
Aug 29 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
用tensorflow搭建CNN的方法
Mar 05 Python
opencv python 2D直方图的示例代码
Jul 20 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
Python学习之包与模块详解
Mar 19 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命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
javascript每日必学之封装
2016/02/23 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
python url 参数修改方法
2018/12/26 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python matplotlib实时画图案例
2020/04/23 Python
python爬取天气数据的实例详解
2020/11/20 Python
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
大学生村官典型材料
2014/01/12 职场文书
大二自我鉴定
2014/01/31 职场文书
工作年限证明范本
2015/06/15 职场文书
2015国庆节宣传语
2015/07/14 职场文书
安全教育培训心得体会
2016/01/15 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js