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的Django框架中forms表单类的使用方法详解
Jun 21 Python
Python 递归函数详解及实例
Dec 27 Python
快速了解python leveldb
Jan 18 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Python类装饰器实现方法详解
Dec 21 Python
python 自动批量打开网页的示例
Feb 21 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python openCV自制绘画板
Oct 27 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
python中的对数log函数表示及用法
Dec 09 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获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
Python魔术方法详解
2015/02/14 Python
python文件操作相关知识点总结整理
2016/02/22 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
银行员工辞职信范文
2014/01/20 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
元旦促销方案
2014/03/15 职场文书
员工保密承诺书
2014/05/28 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
二婚主持词
2015/06/30 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis