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 17 Python
python获取目录下所有文件的方法
Jun 01 Python
Python获取当前路径实现代码
May 08 Python
Python之web模板应用
Dec 26 Python
Python中单例模式总结
Feb 20 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
谈谈Python中的while循环语句
Mar 10 Python
python GUI实现小球满屏乱跑效果
May 09 Python
python判断自身是否正在运行的方法
Aug 08 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
python MultipartEncoder传输zip文件实例
Apr 07 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
php 过滤危险html代码
2009/06/29 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
vue2.0之多页面的开发的示例
2018/01/30 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
简单介绍Python中的JSON模块
2015/04/08 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python小程序实现刷票功能详解
2019/07/17 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
python判断元素是否存在的实例方法
2020/09/24 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
班组长竞聘书
2014/03/31 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
现实表现证明材料
2015/06/19 职场文书
贷款收入证明格式
2015/06/24 职场文书
追讨欠款律师函
2015/06/24 职场文书
欠条范文
2015/07/03 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书