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 Tkinter基础控件用法
Sep 03 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
对Python3使运行暂停的方法详解
Feb 18 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python Selenium 库的使用技巧
Oct 16 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
深入探讨opencv图像矫正算法实战
May 21 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
我的论坛源代码(四)
2006/10/09 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
JQuery中上下文选择器实现方法
2015/05/18 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python常用库大全及简要说明
2020/01/17 Python
Python对wav文件的重采样实例
2020/02/25 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
教师自我鉴定
2013/12/13 职场文书
芙蓉镇观后感
2015/06/10 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android