zoukankan      html  css  js  c++  java
  • 随机数模块(random)

    随机数模块(random)

    生成服从特定统计规律的随机数序列。

    二项分布(binomial)

    二项分布就是重复n次独立事件的伯努利试验。在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,事件发生与否的概率在每一次独立试验中都保持不变。

    # 产生size个随机数,每个随机数来自n次尝试中的成功次数,其中每次尝试成功的概率为p。
    np.random.binomial(n, p, size)

    二项分布可以用于求如下场景的概率的近似值:

    某人投篮命中率为0.3,投10次,进5个球的概率。

    sum(np.random.binomial(10, 0.3, 200000) == 5) / 200000
    #随机数
    
    import  numpy as np
    #命中率0.3 投10次,进几个?
    n = np.random.binomial(10,0.3,100000)
    for i in range(0,11):
      p = (n==i).sum()/100000
      print(i,':',p)

    某人打客服电话,客服接通率是0.6,一共打了3次,都没人接的概率。

    sum(np.random.binomial(3, 0.6, 200000) == 0) / 200000

    超几何分布(hypergeometric)

    # 产生size个随机数,每个随机数t为在总样本中随机抽取nsample个样本后好样本的个数,总样本由ngood个好样本和nbad个坏样本组成
    np.random.hypergeometric(ngood, nbad, nsample, size)
    #超几何分布
    n = np.random.hypergeometric(7,3,5,200000)
    # print(n)
    for i in range(2,6):
      p=(n==i).sum()/200000
      print(i, ':', p)

    正态分布(normal)

    # 产生size个随机数,服从标准正态(期望=0, 标准差=1)分布。
    np.random.normal(size)
    # 产生size个随机数,服从正态分布(期望=1, 标准差=10)。
    np.random.normal(loc=1, scale=10, size)

    通常在数据分析的数据预处理阶段,会对当前样本数据进行少量的异常值修改与缺少值填充,可以使用random得到符合某种概率分布的一组随机数,完成数据预处理.

  • 相关阅读:
    SpringBoot配置文件
    SpringBoot基础开发流程
    day06-01数字类型、数字类型的转换
    特有的循环结构(for-else、while-else)——Python篇
    分支、循环——Python基础篇
    循环关键字——Python篇
    另类三目运算符——Python篇
    原码、反码以及补码
    Python运算符
    Python变量
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11491743.html
Copyright © 2011-2022 走看看