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+mysql实现简单的web程序
Sep 11 Python
浅要分析Python程序与C程序的结合使用
Apr 07 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Python自定义简单图轴简单实例
Jan 08 Python
python之super的使用小结
Aug 13 Python
python实现二维数组的对角线遍历
Mar 02 Python
Python中一些深不见底的“坑”
Jun 12 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
Python 静态方法和类方法实例分析
Nov 21 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 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&MYSQL服务器配置说明
2006/10/09 PHP
杏林同学录(四)
2006/10/09 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
Opacity.js
2007/01/22 Javascript
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python的range和linspace使用详解
2019/11/27 Python
python类中super() 的使用解析
2019/12/19 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
毕业生自我鉴定范文
2013/11/08 职场文书
超市总经理岗位职责
2014/02/02 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
毕业生见习报告总结
2014/11/08 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
城管个人总结
2015/02/28 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python