Python 随机数模块random最常用的8个方法

简介: Python 随机数模块random最常用的8个方法


常用函数列表

>>> import random
>>> [i for i in dir(random) if i[0]>='a']
['betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss',
 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate',
 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle',
 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']



内置英语帮助

>>> import random
>>> [eval(f'print("No.",i+1,":"),help(random.{j})') for i,j in enumerate([i for i in dir(random) if i[0]>='a'])]



运行结果如下,一共22个函数:

No. 1 :
Help on method betavariate in module random:
betavariate(alpha, beta) method of random.Random instance
    Beta distribution.
    Conditions on the parameters are alpha > 0 and beta > 0.
    Returned values range between 0 and 1.
No. 2 :
Help on method choice in module random:
choice(seq) method of random.Random instance
    Choose a random element from a non-empty sequence.
No. 3 :
Help on method choices in module random:
choices(population, weights=None, *, cum_weights=None, k=1) method of random.Random instance
    Return a k sized list of population elements chosen with replacement.
    If the relative weights or cumulative weights are not specified,
    the selections are made with equal probability.
No. 4 :
Help on method expovariate in module random:
expovariate(lambd) method of random.Random instance
    Exponential distribution.
    lambd is 1.0 divided by the desired mean.  It should be
    nonzero.  (The parameter would be called "lambda", but that is
    a reserved word in Python.)  Returned values range from 0 to
    positive infinity if lambd is positive, and from negative
    infinity to 0 if lambd is negative.
No. 5 :
Help on method gammavariate in module random:
gammavariate(alpha, beta) method of random.Random instance
    Gamma distribution.  Not the gamma function!
    Conditions on the parameters are alpha > 0 and beta > 0.
    The probability distribution function is:
                x ** (alpha - 1) * math.exp(-x / beta)
      pdf(x) =  --------------------------------------
                  math.gamma(alpha) * beta ** alpha
No. 6 :
Help on method gauss in module random:
gauss(mu, sigma) method of random.Random instance
    Gaussian distribution.
    mu is the mean, and sigma is the standard deviation.  This is
    slightly faster than the normalvariate() function.
    Not thread-safe without a lock around calls.
No. 7 :
Help on built-in function getrandbits:
getrandbits(k, /) method of random.Random instance
    getrandbits(k) -> x.  Generates an int with k random bits.
No. 8 :
Help on method getstate in module random:
getstate() method of random.Random instance
    Return internal state; can be passed to setstate() later.
No. 9 :
Help on method lognormvariate in module random:
lognormvariate(mu, sigma) method of random.Random instance
    Log normal distribution.
    If you take the natural logarithm of this distribution, you'll get a
    normal distribution with mean mu and standard deviation sigma.
    mu can have any value, and sigma must be greater than zero.
No. 10 :
Help on method normalvariate in module random:
normalvariate(mu, sigma) method of random.Random instance
    Normal distribution.
    mu is the mean, and sigma is the standard deviation.
No. 11 :
Help on method paretovariate in module random:
paretovariate(alpha) method of random.Random instance
    Pareto distribution.  alpha is the shape parameter.
No. 12 :
Help on method randint in module random:
randint(a, b) method of random.Random instance
    Return random integer in range [a, b], including both end points.
No. 13 :
Help on built-in function random:
random() method of random.Random instance
    random() -> x in the interval [0, 1).
No. 14 :
Help on method randrange in module random:
randrange(start, stop=None, step=1, _int=<class 'int'>) method of random.Random instance
    Choose a random item from range(start, stop[, step]).
    This fixes the problem with randint() which includes the
    endpoint; in Python this is usually not what you want.
No. 15 :
Help on method sample in module random:
sample(population, k) method of random.Random instance
    Chooses k unique random elements from a population sequence or set.
    Returns a new list containing elements from the population while
    leaving the original population unchanged.  The resulting list is
    in selection order so that all sub-slices will also be valid random
    samples.  This allows raffle winners (the sample) to be partitioned
    into grand prize and second place winners (the subslices).
    Members of the population need not be hashable or unique.  If the
    population contains repeats, then each occurrence is a possible
    selection in the sample.
    To choose a sample in a range of integers, use range as an argument.
    This is especially fast and space efficient for sampling from a
    large population:   sample(range(10000000), 60)
No. 16 :
Help on method seed in module random:
seed(a=None, version=2) method of random.Random instance
    Initialize internal state from hashable object.
    None or no argument seeds from current time or from an operating
    system specific randomness source if available.
    If *a* is an int, all bits are used.
    For version 2 (the default), all of the bits are used if *a* is a str,
    bytes, or bytearray.  For version 1 (provided for reproducing random
    sequences from older versions of Python), the algorithm for str and
    bytes generates a narrower range of seeds.
No. 17 :
Help on method setstate in module random:
setstate(state) method of random.Random instance
    Restore internal state from object returned by getstate().
No. 18 :
Help on method shuffle in module random:
shuffle(x, random=None) method of random.Random instance
    Shuffle list x in place, and return None.
    Optional argument random is a 0-argument function returning a
    random float in [0.0, 1.0); if it is the default None, the
    standard random.random will be used.
No. 19 :
Help on method triangular in module random:
triangular(low=0.0, high=1.0, mode=None) method of random.Random instance
    Triangular distribution.
    Continuous distribution bounded by given lower and upper limits,
    and having a given mode value in-between.
    http://en.wikipedia.org/wiki/Triangular_distribution
No. 20 :
Help on method uniform in module random:
uniform(a, b) method of random.Random instance
    Get a random number in the range [a, b) or [a, b] depending on rounding.
No. 21 :
Help on method vonmisesvariate in module random:
vonmisesvariate(mu, kappa) method of random.Random instance
    Circular data distribution.
    mu is the mean angle, expressed in radians between 0 and 2*pi, and
    kappa is the concentration parameter, which must be greater than or
    equal to zero.  If kappa is equal to zero, this distribution reduces
    to a uniform random angle over the range 0 to 2*pi.
No. 22 :
Help on method weibullvariate in module random:
weibullvariate(alpha, beta) method of random.Random instance
    Weibull distribution.
    alpha is the scale parameter and beta is the shape parameter.
[(None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None)]




最常用随机函数


选择其中最常用的8个函数进行用法测试:


1. random() -> x in the interval [0, 1).

# 生成随机纯小数
>>> random.random()
0.4203557245596913
>>> random.random()
0.07523540148971974
>>> random.random()
0.18567496593579502
>>> 




2. randint(a, b) method of random.Random instance

    Return random integer in range [a, b], including both end points.

# 生成开区间内的随机整数,包括区间两头的整数
>>> random.randint(1,6)
3
>>> random.randint(1,6)
2
>>> random.randint(1,6)
6
>>> 

bfc4b783c68c49a8b3da5c2733988b37.png


3. uniform(a, b) method of random.Random instance

    Get a random number in the range [a, b) or [a, b] depending on rounding.

# 生成前开后闭区内的随机浮点数
>>> random.uniform(1,8)
7.370822144312884
>>> random.uniform(1,8)
4.466816494748985
>>> random.uniform(1,8)
1.8154762190957459
>>> 



4. randrange(start, stop=None, step=1, _int=<class 'int'>)

# 指定范围内的随机整数,有步长参数比如step=2时只生成奇数或偶数
>>> random.randrange(3,8)
5
>>> random.randrange(3,8)
3
>>> random.randrange(3,18,2)
9
>>> random.randrange(3,18,2)
13
>>> 



5. choice(seq) method of random.Random instance

    Choose a random element from a non-empty sequence.

# 随机取出序列中的一个元素
>>> random.choice('abcdef')
'd'
>>> random.choice('abcdef')
'f'
>>> random.choice('abcdef')
'b'
>>> random.choice([1,22,333,4444])
333
>>> random.choice([1,22,333,4444])
1
>>> random.choice([1,22,333,4444])
22
>>> 



6. shuffle(x, random=None) method of random.Random instance

    Shuffle list x in place, and return None.

# 给列表随机排序,俗称“洗牌”函数
>>> random.shuffle([1,2,3,4,5,6])
>>> a = [1,2,3,4,5,6]
>>> random.shuffle(a)
>>> a
[4, 6, 5, 2, 3, 1]
>>> random.shuffle(a)
>>> a
[3, 6, 1, 5, 4, 2]
>>> b = 'abcdef'
>>> b = list(b)
>>> random.shuffle(b)
>>> b=''.join(b)
>>> b
'cdaefb'
>>> 



7. sample(population, k) method of random.Random instance

    Chooses k unique random elements from a population sequence or set.

# 在range()指定范围内,返回指定个数的随机数样本列表
>>> random.sample(range(10000), 10)
[1817, 5551, 3549, 8889, 750, 265, 5890, 7658, 4068, 1249]
>>> random.sample(range(100,1000), 12)
[786, 280, 897, 970, 767, 554, 874, 229, 289, 318, 112, 275]
>>> 
>>> # 也可以和shuffle()用法一样,不同的是shuffle在原列表上改动
>>> random.sample([1,2,3,4,5,6], 6)
[6, 1, 3, 2, 5, 4]
>>> random.sample([1,2,3,4,5,6], 6)
[5, 4, 2, 6, 1, 3]
>>> 




8. seed(a=None, version=2) method of random.Random instance

    Initialize internal state from hashable object.

# 初始化随机数种子
>>> def randnum():
    # 不设置种子,样本不固定
  return random.randint(1,6)
>>> randnum()
1
>>> randnum()
6
>>> randnum()
4
>>> def randnumseed(seed=1):
    # 设置随机数种子后,种子对应的样本固定
  random.seed(seed)
  return random.randint(1,6)
>>> randnumseed()
2
>>> randnumseed()
2
>>> randnumseed()
2
>>> randnumseed(2)
1
>>> randnumseed(2)
1
>>> randnumseed(2)
1
>>> randnumseed(12345)
4
>>> randnumseed(12345)
4
>>> 


其它函数用于概率论中的伽玛分布等,理论比较高深,略。


目录
相关文章
|
23天前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
|
1月前
|
Python
Python字符串center()方法详解 - 实现字符串居中对齐的完整指南
Python的`center()`方法用于将字符串居中,并通过指定宽度和填充字符美化输出格式,常用于文本对齐、标题及表格设计。
|
2月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
154 72
|
22天前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
|
3月前
|
存储 机器学习/深度学习 人工智能
稀疏矩阵存储模型比较与在Python中的实现方法探讨
本文探讨了稀疏矩阵的压缩存储模型及其在Python中的实现方法,涵盖COO、CSR、CSC等常见格式。通过`scipy.sparse`等工具,分析了稀疏矩阵在高效运算中的应用,如矩阵乘法和图结构分析。文章还结合实际场景(推荐系统、自然语言处理等),提供了优化建议及性能评估,并展望了稀疏计算与AI硬件协同的未来趋势。掌握稀疏矩阵技术,可显著提升大规模数据处理效率,为工程实践带来重要价值。
153 58
|
2月前
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
141 0
|
2月前
|
传感器 算法 数据挖掘
Python时间序列平滑技术完全指南:6种主流方法原理与实战应用
时间序列数据分析中,噪声干扰普遍存在,影响趋势提取。本文系统解析六种常用平滑技术——移动平均、EMA、Savitzky-Golay滤波器、LOESS回归、高斯滤波与卡尔曼滤波,从原理、参数配置、适用场景及优缺点多角度对比,并引入RPR指标量化平滑效果,助力方法选择与优化。
398 0
|
Python
Python如何生成随机数——random随机数模块的应用
在python中用于生成随机数的模块是random,在使用前需要import。
385 0
|
Python
关于Python的随机数模块,你必须要掌握!
面对现在各种的python3天入门、21天速成,等等的教程与素材,让很多人对python的基础知识,掌握的很薄弱。包括我身边的朋友,已经开始Django、Flask的web开发了,甚至对文件遍历还不慎了解。昨天在做照片墙的时候,用到了random模块,大家可能觉得,这个模块有啥说的,无非就是随机数么,但随机的方式却有很多,今天就跟大家总结下random这个常用的模块
164 0

推荐镜像

更多