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 25 Python
Python多进程同步Lock、Semaphore、Event实例
Nov 21 Python
Python的requests网络编程包使用教程
Jul 11 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
Django项目后台不挂断运行的方法
Aug 31 Python
python实现简易学生信息管理系统
Apr 05 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Django中的session用法详解
Mar 09 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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 curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
php中fsockopen用法实例
2015/01/05 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
python中while和for的区别总结
2019/06/28 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
智能室内花园:Click & Grow
2021/01/29 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
教师远程培训感言
2014/03/06 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
MySQL锁机制
2021/04/05 MySQL
Python数据分析之pandas读取数据
2021/06/02 Python