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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Python实现的归并排序算法示例
Nov 21 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
基于python实现语音录入识别代码实例
Jan 17 Python
Python插件机制实现详解
May 04 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
用python读取xlsx文件
Dec 17 Python
Python实现视频自动打码的示例代码
Apr 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
php中变量及部分适用方法
2008/03/27 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
Django中几种重定向方法
2015/04/28 Python
用C++封装MySQL的API的教程
2015/05/06 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
python中return不返回值的问题解析
2020/07/22 Python
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
暑假实习求职信范文
2013/09/22 职场文书
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
食品销售计划书
2014/04/26 职场文书
宿舍标语大全
2014/06/19 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
大学生自我评价范文
2015/03/03 职场文书
病危通知书样本
2015/04/17 职场文书
家长会主持词开场白
2015/05/29 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL