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求列表交集的方法汇总
Nov 10 Python
python计算圆周率pi的方法
Jul 11 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python模拟随机游走图形效果示例
Feb 06 Python
详谈python在windows中的文件路径问题
Apr 28 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
Django处理多用户类型的方法介绍
May 18 Python
python可视化实现KNN算法
Oct 16 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
Javascript之String对象详解
2016/06/08 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
python字符串替换的2种方法
2014/11/30 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python使用django搭建web开发环境
2017/06/09 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python如何将两个txt文件内容合并
2019/10/18 Python
详解python tcp编程
2020/08/24 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
应用化学专业职业生涯规划书
2014/01/22 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
马智宇结婚主持词
2014/04/01 职场文书
《雪儿》教学反思
2014/04/17 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
工程项目合作意向书
2015/05/08 职场文书
地心历险记观后感
2015/06/15 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
Java基础——Map集合
2022/04/01 Java/Android
CSS的calc函数用法小结
2022/06/25 HTML / CSS