zoukankan      html  css  js  c++  java
  • 随机数生成

    numpy.random模块对Python内置的random进行了补充,增加了一些用于高效生成多种概率分布的样本值的函数。如可以用normal来得到一个标准正态分布的4*4的样本数组:

    In [1]: import numpy as np
    
    In [2]: samples=np.random.sample(size=(4,4))
    
    In [3]: samples
    Out[3]:
    array([[0.28705967, 0.44072192, 0.9762484 , 0.13830485],
           [0.74047263, 0.97749408, 0.69630957, 0.29841462],
           [0.54948539, 0.39314335, 0.75565134, 0.02123291],
           [0.46449012, 0.21270412, 0.04491115, 0.1163004 ]])

    而Python内置的random模块则只能一次生成一个样本值。从下面的测试结果可以看到,如果需要产生大量的样本值,numpy.random模块快了不止一个数量级:

    In [9]: %timeit samples=[normalvariate(0,1) for _ in range(N)]
    167 ms ± 1.71 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
    
    In [10]: %timeit np.random.normal(size=N)
    6.41 ms ± 122 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

    numpy.random函数:

    seed:确定随机数生成器的种子

    permutation:返回一个序列的随机排列或返回一个随机排列的范围

    shuffle:对一个序列就地随机排列

    rand:产生均匀分布的样本值

    randint:从给定的上下限范围内随机选取整数

    randn:产生正态分布(平均值为0,标准差为1)的样本值,类似MATLAB接口

    binomial:产生二项分布的样本值

    normal:产生正态分布的样本值

    beta:产生Beta分布的样本值

    chisquare:产生卡方分布的样本值

    gamma:产生Gamma分布的样本值

    uniform:产生在[0,1]中均匀分布的样本值

  • 相关阅读:
    【2021-01-07】叫我“何工”就好
    2021年的 目标计划
    转:我在拼多多的三年 https://www.leadroyal.cn/?p=1228#more-1228
    匀强电场等效重力场
    开源图片素材管理软件-civet
    心学#传习录学习
    工作感受月记202101月
    统计字典序元音字符的数量
    可被5整除的二进制
    假期刷题--JAVA
  • 原文地址:https://www.cnblogs.com/catxjd/p/9977666.html
Copyright © 2011-2022 走看看