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实现计算倒数的方法
Jul 11 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
使用matplotlib画散点图的方法
May 25 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
PyQt5组件读取参数的实例
Jun 25 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
python图形用户接口实例详解
Dec 16 Python
python实现局域网内实时通信代码
Dec 22 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python对文档中元素删除,替换操作
Apr 02 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实现将GB编码转换为UTF8
2006/11/25 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Python中交换两个元素的实现方法
2018/06/29 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
python函数定义和调用过程详解
2020/02/09 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
面试后的感谢信范文
2014/02/01 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
推荐信格式范文
2014/05/09 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
工作岗位职责范本
2015/02/15 职场文书
会计工作态度自我评价
2015/03/06 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
创业计划书之水果店
2019/07/18 职场文书