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入门篇之函数
Oct 20 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
Python类属性的延迟计算
Oct 22 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
Apr 19 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
Python实现的特征提取操作示例
Dec 03 Python
django框架使用方法详解
Jul 18 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
深入解析php中的foreach问题
2013/06/30 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
nginx 设置多个站跨域
2021/03/09 Servers
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
详解Node项目部署到云服务器上
2017/07/12 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
俄罗斯游戏商店:Buka
2020/03/01 全球购物
什么是GWT的Module
2013/01/20 面试题
操行评语大全
2014/04/30 职场文书
党员承诺书格式
2014/05/21 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
员工安全责任书范本
2014/07/24 职场文书
2015年市场部工作总结
2015/04/30 职场文书
幽灵公主观后感
2015/06/09 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
浅谈python中的多态
2021/06/15 Python
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript