• 使用numpy产生随机数


    numpy中的random模块包含了很多方法可以用来产生随机数,这篇文章将对random中的一些常用方法做一个总结。

    1、numpy.random.rand(d0, d1, ..., dn)

    作用:产生一个给定形状的数组(其实应该是ndarray对象或者是一个单值),数组中的值服从[0, 1)之间的均匀分布
    参数:d0, d, ..., dn : int,可选。如果没有参数则返回一个float型的随机数,该随机数服从[0, 1)之间的均匀分布。
    返回值:ndarray对象或者一个float型的值
    例子

    # [0, 1)之间均匀分布的随机数,3行2列
    a = np.random.rand(3, 2)
    print(a)
    # 不提供形状
    b = np.random.rand()
    print(b)
    

    输出:

    [[0.26054323 0.28184468]
     [0.7783674  0.71733674]
     [0.90302256 0.49303252]]
    0.6022098740124009
    

    2、numpy.random.uniform(low=0.0, high=1.0, size=None)

    作用:返回一个在区间[low, high)中均匀分布的数组,size指定形状。
    参数
    low, high:float型或者float型的类数组对象。指定抽样区间为[low, high),low的默认值为0.0,hign的默认值为1.0
    size:int型或int型元组。指定形状,如果不提供size,则返回一个服从该分布的随机数。
    例子

    # 在[1, 10)之间均匀抽样,数组形状为3行2列
    a = np.random.uniform(1, 10, (3, 2))
    print(a)
    # 不提供size
    b = np.random.uniform(1, 10)
    print(b)
    

    输出:

    [[5.16545387 6.3769087 ]
     [9.98964899 7.88833885]
     [1.37173855 4.19855075]]
    3.899250175275188
    

    3、numpy.random.randn(d0, d1, ..., dn)

    作用:返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。
    参数:d0, d, ..., dn : int,可选。如果没有参数,则返回一个服从标准正态分布的float型随机数。
    返回值:ndarray对象或者float
    例子

    # 3行2列
    a = np.random.randn(3, 2)
    print(a)
    # 不提供形状
    b = np.random.randn()
    print(b)
    

    输出:

    [[-1.46605527  0.35434705]
     [ 0.43408199  0.02689309]
     [ 0.48041554  1.62665755]]
    -0.6291254375915813
    

    4、numpy.random.normal(loc=0.0, scale=1.0, size=None)

    作用:返回一个由size指定形状的数组,数组中的值服从 (mu=loc, sigma=scale)正态分布
    参数
    loc : float型或者float型的类数组对象,指定均值 (mu)
    scale : float型或者float型的类数组对象,指定标准差 (sigma)
    size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。
    输出:ndarray对象或者一个标量
    例子

    # 标准正态分布,3行2列
    a = np.random.normal(0, 1, (3, 2))
    print(a)
    # 均值为1,标准差为3
    b = np.random.normal(1, 3)
    print(b)
    

    输出:

    [[ 0.34912031 -0.08757564]
     [-0.99753101  0.37441719]
     [ 2.68072286 -1.03663963]]
    5.770831320998463
    

    5、numpy.random.randint(low, high=None, size=None, dtype='l')

    作用:返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。
    参数
    low, high:int型,指定抽样区间[low, high)
    size:int型或int型的元组,指定形状
    dypte:可选参数,指定数据类型,比如int,int64等,默认是np.int
    返回值:如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。
    例子

    # 在[1, 10)之间离散均匀抽样,数组形状为3行2列
    a = np.random.randint(1, 10, (3, 2))
    print(a)
    # 不提供size
    b = np.random.randint(1, 10)
    print(b)
    # 指定dtype
    c = np.random.randint(1, 10, dtype=np.int64)
    print(c)
    type(c)
    

    输出:

    [[3 1]
     [3 3]
     [5 8]]
    6
    2
    numpy.int64
    

    6、numpy.random.random(size=None)

    作用:返回从[0, 1)之间均匀抽样的数组,size指定形状。
    参数
    size:int型或int型的元组,如果不提供则返回一个服从该分布的随机数
    返回值:float型或者float型的ndarray对象
    例子

    # [0, 1)之间的均匀抽样,3行2列
    a = np.random.random((3, 2))
    print(a)
    # 不指定size
    b = np.random.random()
    print(b)
    

    输出:

    [[0.80136714 0.63129059]
     [0.04556679 0.04433006]
     [0.09643599 0.53312761]]
    0.32828505898057136
    

    使用numpy产生随机数的更多方法可以参考官方文档

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 小计算器
    事实证明,应用市场是个流量的生意(产品能力并不足以形成护城河)
    迅雷创始人程浩:创业公司5招做好内部创新(组建小型敢死队:一共3个人,一个产品经理,两个研发;腾讯做不做这个项目是一个伪命题;让用户来验证,而不是相反 good)
    核心思想:创业者要做正确的决定,而非容易的决定(享受创业路上的孤单,你必须要有将自己关在小屋子里独自做重大且艰难决定的勇气)
    Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样
    Qt5.7中使用MySQL Driver(需要把libmysql.dll文件拷贝到Qt的bin目录中。或者自己编译的时候,链接静态库)
    c++对象内存布局的理解
    观察者模式
    本地事务和分布式事务工作
    弱引用
  • 原文地址:https://www.cnblogs.com/sench/p/9683905.html
Copyright © 2020-2023  润新知