zoukankan      html  css  js  c++  java
  • np.random.randn()、np.random.rand()、np.random.randint()

    (1)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). 
    5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。

    作用:

    通过本函数可以返回一个或一组服从标准正态分布的随机样本值。

    特点:

    标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)。对应的正态分布曲线如下所示,即 
    这里写图片描述

    标准正态分布曲线下面积分布规律是:

    在-1.96~+1.96范围内曲线下的面积等于0.9500(即取值在这个范围的概率为95%),在-2.58~+2.58范围内曲线下面积为0.9900(即取值在这个范围的概率为99%). 
    因此,由 np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间,当然也不排除存在较大值的情形,只是概率较小而已。

    在神经网络构建中,权重参数W通常采用该函数进行初始化,当然需要注意的是,通常会在生成的矩阵后面乘以小数,比如0.01,目的是为了提高梯度下降算法的收敛速度。 
    W = np.random.randn(2,2)*0.01

    import numpy as np

    arr1 = np.random.randn(2,4)
    print(arr1)
    print('******************************************************************')
    arr2 = np.random.rand(2,4)
    print(arr2)
    1
    2
    3
    4
    5
    6
    7
    结果:

    [[-1.03021018 0.5197033 0.52117459 -0.70102661]
    [ 0.98268569 1.21940697 -1.095241 -0.38161758]]
    ******************************************************************
    [[ 0.19947349 0.05282713 0.56704222 0.45479972]
    [ 0.28827103 0.1643551 0.30486786 0.56386943]]

    (2) 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

    import numpy as np

    arr1 = np.random.randn(2,4)
    print(arr1)
    print('******************************************************************')
    arr2 = np.random.rand(2,4)
    print(arr2)
    1
    2
    3
    4
    5
    6
    7
    结果:

    [[-1.03021018 0.5197033 0.52117459 -0.70102661]
    [ 0.98268569 1.21940697 -1.095241 -0.38161758]]
    ******************************************************************
    [[ 0.19947349 0.05282713 0.56704222 0.45479972]
    [ 0.28827103 0.1643551 0.30486786 0.56386943]]
    ---------------------
    作者:木子木泗
    来源:CSDN
    原文:https://blog.csdn.net/u010758410/article/details/71799142
    版权声明:本文为博主原创文章,转载请附上博文链接!

    (3) np.random.randint()函数

    语法:

    numpy.random.randint(low, high=None, size=None, dtype=’l’) 
    输入: 
    low—–为最小值 
    high—-为最大值 
    size—–为数组维度大小 
    dtype—为数据类型,默认的数据类型是np.int。 
    返回值: 
    返回随机整数或整型数组,范围区间为[low,high),包含low,不包含high; 
    high没有填写时,默认生成随机数的范围是[0,low)

    在使用Python进行数据处理时,往往需要用到大量的随机数据,那如何构造这么多数据呢?Python的第三方库numpy库中提供了random函数来实现这个功能。
    本文将根据官方文档以及其他博友的博客一起来谈论常见的random函数以及使用
    官方文档

    首先说下numpy.random.seed()与numpy.random.RandomState()这两个在数据处理中比较常用的函数,两者实现的作用是一样的,都是使每次随机生成数一样,具体可见下图

    1.numpy.random.rand()
    官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn)
    以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本。
    用法及实现:


    2.numpy.random.randn()
    官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn)
    以给定的形状创建一个数组,数组元素来符合标准正态分布N(0,1)
    若要获得一般正态分布则可用sigma * np.random.randn(…) + mu进行表示
    用法及实现:


    3.numpy.random.randint()
    官方文档中给出的用法是:numpy.random.randint(low,high=None,size=None,dtype)
    生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low)
    用法及实现
    high=None的情形


    high≠None


    4.numpy.random.random_integers()
    官方文档中给出的用法是:
    numpy.random.random_integers(low,high=None,size=None)
    生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low]
    用法及实现
    high=None的情形


    high≠None的情形


    此外,若要将【a,b】区间分成N等分,也可以用此函数实现
    a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

    5.numpy.random_sanmple()
    官方文档中给出的用法是:
    numpy.random.random_sample(size=None)
    以给定形状返回[0,1)之间的随机浮点数
    用法及实现


    其他函数,numpy.random.random() ;numpy.random.ranf()
    numpy.random.sample()用法及实现都与它相同

    6.numpy.random.choice()
    官方文档中给出的用法:
    numpy.random.choice(a,size=None,replace=True,p=None)
    若a为数组,则从a中选取元素;若a为单个int类型数,则选取range(a)中的数
    replace是bool类型,为True,则选取的元素会出现重复;反之不会出现重复
    p为数组,里面存放选到每个数的可能性,即概率
    用法及实现


    以上就是关于random函数的几种用法,欢迎大家一起交流
    ---------------------
    作者:冻鸡hhhh
    来源:CSDN
    原文:https://blog.csdn.net/m0_38061927/article/details/75335069
    版权声明:本文为博主原创文章,转载请附上博文链接!

    萍水相逢逢萍水,浮萍之水水浮萍!
  • 相关阅读:
    js学习笔记
    在 Windows 下远程桌面连接 Linux XManager 篇
    使用多种反病毒引擎扫描文件
    光纤接口小知识
    在 Windows 下远程桌面连接 Linux VNC 篇
    基于 RHEL 的 CentOS 5.5 发布
    安装Windows 7的XP模式的步骤
    跨平台加密版 SQLite 3 wxSQLite3
    Free 的迷思
    使用 iptables 限制黑客猜密码
  • 原文地址:https://www.cnblogs.com/AIBigTruth/p/10288239.html
Copyright © 2011-2022 走看看