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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
初步解析Python中的yield函数的用法
Apr 03 Python
Python做文本按行去重的实现方法
Oct 19 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
Django--权限Permissions的例子
Aug 28 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
Python常用库大全及简要说明
Jan 17 Python
利用Python实现朋友圈中的九宫格图片效果
Sep 03 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php-fpm配置详解
2014/02/12 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php 中的closure用法详解
2017/06/12 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
聚美优品励志广告词
2014/03/14 职场文书
给校长的建议书200字
2014/05/16 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
计划生育工作汇报
2014/10/28 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书