开发者

python中random随机函数详解

目录
  • 一、random基础
  • 二、实数分布
    • 2.1 对称分布
    • 2.2 指数分布
    • 2.3 Beta 分布
    • 2.4 Gamma 分布
    • 2.5 高斯分布
    • 2.6 对数正态分布
    • 2.7 正态分布
    • 2.8 冯·米塞斯分布
    • 2.9 帕累托分布
    • 2.10 威布尔分布
  • 总结

    加载相关库

    import random
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 解决中文不显示的问题
    from pylab import mpl
    mpl.rcParams['font.sans-serif']=['SimHei']
    # 解决正负号不显示问题
    plt.rcParams['axes.unicode_minus']=False 
    

    一、random基础

    random.random()                                  # 返回随机生成的一个实数,它在[0,1)范围内。
    random.randint(1,10)                             # 产生 1 到 10 的一个整数型随机数
    random.randrange(1,100,2)                        # 生成从1到100的间隔为2的随机整数
    random.uniform(1.1,5.4)                          # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
    random.choice('twww.cppcns.comomorrow')                        # 从序列中随机选取一个元素
    random.sample('zyxwvutsrqponmlkjihgfedcba',5)    # 多个字符中生成指定数量的随机字符
    
    # 打乱排序
    items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    random.shuffle(items)
    print(items)
    

    items:[3, 8, 4, 1, 7, 0, 6, 2, 9, 5]

    二、实数分布

    2.1 对称分布

    random.triangular(low, high, mode)

    返回一个随机浮点数 N ,使得 low <= N <= high 并在这些边界之间使用指定的 mode 。 low 和 high 边界默认为零和一。 mode 参数默认为边界之间的中点,给出对称分布。

    n = 10000
    x = [random.triangular(1, 10, 2) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.2 指数分布

    random.expovariate(lambd)

    lambd 是 1.0 除以所需的平均值,它应该是非零的。 (该参数本应命名为 “lambda” ,但这是 python 中的保留字。)如果 lambd 为正,则返回值的范围为 0 到正无穷大;如果 lambd 为负,则返回值从负无穷大到 0。

    n = 10000
    x = [random.expovariate(1) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.3 Beta 分布

    random.betavariate(alpha, beta)

    参数的条件是 alpha > 0 和 beta > 0。 返回值的范围介于 0 和 1 之间。

    n = 10000
    x = [random.betavariate(1, 1) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.4 Gamma 分布

    random.gammavariate(alpha, beta)

    ( 不是 gamma 函数! ) 参数的条件是 alpha > 0 和 beta > 0。

    n = 10000
    x = [random.gammavariate(10, 10) for i in range(n)]
    sns.dihttp://www.cppcns.comstplot(x)  # 默认
    

    python中random随机函数详解

    2.5 高斯分布

    random.gauss(mu, sigma)

    mu 是平均值,sigma 是标准差。 这比下面定义的 normalvariate() 函数略快。

    n = 100http://www.cppcns.com00
    x = [random.gauss(10, 1)hQeSrls for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.6 对数正态分布

    random.lognormvariate(mu, sigma)

    如果你采用这个分布的自然对数,你将得到一个正态分布,平均值为 mu 和标准差为 sigma 。 mu 可以是任何值,sigma 必须大于零。

    n = 10000
    x = [random.lognormvariate(-100, 1) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.7 正态分布

    random.normalvariate(mu, sigma)

    mu 是平均值,sigma 是标准差。

    n = 10000
    x = [random.normalvariate(100, 10) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.8 冯·米塞斯分布

    random.vonmisesvariate(mu, kappa)

    mu 是平均角度,以弧度表示,介于0和 2pi 之间,kappa 是浓度参数,必须大于或等于零。 如果 kappa 等于零,则该分布在 0 到 2pi 的范围内减小到均匀的随机角度.

    n = 10000
    x = [random.vonmisesvariate(4, 0) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.9 帕累托分布

    random.paretovariate(alpha)

    alpha 是形状参数。

    n = 10000
    x = [random.paretovariate(100) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    2.10 威布尔分布

    random.weib编程客栈ullvariate(alpha, beta)

    alpha 是比例参数,beta 是形状参数。

    n = 10000
    x = [random.weibullvariate(100,10) for i in range(n)]
    sns.distplot(x)  # 默认
    

    python中random随机函数详解

    总结

    到此这篇关于python中random随机函数详解的文章就介绍到这了,更多相关python random随机数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜