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在校内发人人网状态(人人网看状态)
Feb 19 Python
跟老齐学Python之使用Python操作数据库(1)
Nov 25 Python
介绍Python中的fabs()方法的使用
May 14 Python
Python中的默认参数详解
Jun 24 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
python基础知识小结之集合
Nov 25 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 Python
对python多线程与global变量详解
Nov 09 Python
python变量命名的7条建议
Jul 04 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 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
2006/12/23 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php购物车实现方法
2015/01/03 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP精确计算功能示例
2016/11/29 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
javascript call方法使用说明
2010/01/11 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
axios 处理 302 状态码的解决方法
2018/04/10 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
考研复习计划
2015/01/19 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android