Numpy中np.random.rand()和np.random.randn() 用法和区别详解


Posted in Python onOctober 23, 2020

numpy.random.rand(d0, d1, …, dn)的随机样本位于[0, 1)中:本函数可以返回一个或一组服从**“0~1”均匀分布**的随机样本值。

numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值。

 1. np.random.rand()

语法:

np.random.rand(d0,d1,d2……dn)
注:使用方法与np.random.randn()函数相同

作用:
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值随机样本取值范围是[0,1),不包括1

应用:在深度学习的Dropout正则化方法中,可以用于生成dropout随机向量(dl),
例如(keep_prob表示保留神经元的比例):

dl = np.random.rand(al.shape[0],al.shape[1]) < keep_prob

举例:

Numpy中np.random.rand()和np.random.randn() 用法和区别详解

注:

均匀分布:

也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。

均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。

均匀分布的概率密度函数为:

Numpy中np.random.rand()和np.random.randn() 用法和区别详解

Numpy中np.random.rand()和np.random.randn() 用法和区别详解

2. np.random.randn() 语法:

np.random.randn(d0,d1,d2……dn)
1)当函数括号内没有参数时,则返回一个浮点数;
2)当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵;
3)当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵;
4)np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple)。

# 举例:
np.random.standard_normal((5))
# [-0.53268495 0.30171848 1.85232368 -0.58746393 0.19683992]

np.random.standard_normal((5,2))
''' 
[[-2.44520524 2.29767001]
 [-1.19770033 -1.09569325]
 [-0.75414833 0.49509984]
 [-1.42537268 0.41788237]
 [ 1.85465491 -1.44383249]] 
 '''
 
np.random.standard_normal((5,2,3))
'''
[[[ 0.54013502 -0.25347615 1.73395647]
 [ 1.03386947 -0.54856199 2.10004584]]

 [[-0.57632903 -0.05856844 1.72805595]
 [ 1.3507174  0.61459539 0.63380028]]

 [[-2.24857933 -1.29276097 0.42585061]
 [ 0.75974263 -0.83670586 -1.56930898]]

 [[-0.32212   1.2884624  1.53744081]
 [ 1.5444555 -1.82408734 -0.55952688]]

 [[-1.21191144 -1.40454518 -0.3369976 ]
 [-0.89314143 0.28291988 1.58394166]]]
'''

np.random.standard_normal((5,2,3,1))
'''
[[[[ 0.19019221]
  [ 0.64618425]
  [ 0.99815722]]

 [[-0.0570328 ]
  [ 0.83271045]
  [-0.30469335]]]


 [[[-1.14788388]
  [ 0.09563431]
  [ 2.05611213]]

 [[-0.14251287]
  [ 1.00922816]
  [-0.55403104]]]


 [[[ 1.75657437]
  [ 1.46381575]
  [ 1.10527197]]

 [[ 0.22667296]
  [ 0.18305552]
  [ 0.5778761 ]]]


 [[[ 0.26501242]
  [-0.4863313 ]
  [ 1.01096974]]

 [[-2.46562874]
  [ 0.19516242]
  [-1.92500848]]]


 [[[ 0.97904566]
  [ 0.80444414]
  [ 0.99981326]]

 [[-0.74329878]
  [-0.9265738 ]
  [ 0.0288684 ]]]]
  '''

5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。

作用:通过本函数可以返回一个或一组服从标准正态分布的随机样本值

特点: 标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)。对应的正态分布曲线如下所示,即:

Numpy中np.random.rand()和np.random.randn() 用法和区别详解

注:

标准正态分布曲线下面积分布规律是:

在-1.96~+1.96范围内曲线下的面积等于0.9500(即取值在这个范围的概率为95%),在-2.58~+2.58范围内曲线下面积为0.9900(即取值在这个范围的概率为99%).
因此,由 np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间,当然也不排除存在较大值的情形,只是概率较小而已。

参考:

https://blog.csdn.net/abc13526222160/article/details/86423754

https://www.cnblogs.com/BBS2013/p/12839042.html

到此这篇关于Numpy中np.random.rand()和np.random.randn() 用法和区别详解的文章就介绍到这了,更多相关Numpy np.random.rand()和np.random.randn()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python日期操作学习笔记
Oct 07 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
python采集微信公众号文章
Dec 20 Python
结合OpenCV与TensorFlow进行人脸识别的实现
Oct 10 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
Django后台管理系统的图文使用教学
Jan 20 Python
pytorch实现MNIST手写体识别
Feb 14 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
Jan 08 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 #Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 #Python
Python 列表推导式需要注意的地方
Oct 23 #Python
python中的split、rsplit、splitlines用法说明
Oct 23 #Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 #Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 #Python
基于Python爬取京东双十一商品价格曲线
Oct 23 #Python
You might like
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
动态加载iframe
2006/06/16 Javascript
json 定义
2008/06/10 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python中单例模式总结
2018/02/20 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
Python学习小技巧总结
2018/06/10 Python
详解flask表单提交的两种方式
2018/07/21 Python
Python文件操作基础流程解析
2020/03/19 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
python爬虫容易学吗
2020/06/02 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
七一党建活动方案
2014/01/28 职场文书
关于母亲节的感言
2014/02/04 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
小学生通知书评语
2014/12/31 职场文书
小学见习报告
2015/06/23 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书