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解析html开发库pyquery使用方法
Feb 07 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
Python解析json文件相关知识学习
Mar 01 Python
Python socket实现的简单通信功能示例
Aug 21 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
python实现矩阵打印
Mar 02 Python
Python创建数字列表的示例
Nov 28 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python验证码截取识别代码实例
May 16 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php去除重复字的实现代码
2011/09/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
怎样声明子类
2013/07/02 面试题
商务英语专业毕业生自荐信
2013/11/05 职场文书
手机业务员岗位职责
2013/12/13 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
建材投资建议书
2014/05/16 职场文书
班级活动总结格式
2014/08/30 职场文书
党校毕业心得体会
2014/09/13 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
辞职信如何写
2015/02/27 职场文书
大一新生军训新闻稿
2015/07/17 职场文书