python random用法

random.seed(a=None, version=2)

当 a 的值没有设置时,则会使用当前系统时间作为 a 的值传入。从下面的例子中可以看出,设置 seed() 函数传入一个固定值的时候,生成的下一个随机数也会是固定的。

>>> import random

>>> random.seed(1)
>>> random.random()
0.13436424411240122

>>> random.seed(1)
>>> random.random()
0.13436424411240122

>>> random.seed(1)
>>> random.random()
0.13436424411240122

random.getstate()

返回一个捕获到的 生成器当前内部状态 的对象,可以将此对象传递给 setstate() 以恢复到这个状态。

andom.setstate()

state 应该是从之前调用 getstate() 获得的,而 setstate() 将生成器的内部状态恢复到调用 getstate() 时的状态。根据下面的例子可以看出,由于生成器内部状态相同时会生成相同的下一个随机数,我们可以使用 getstate() 和 setstate() 对生成器内部状态进行获取和重置到某一状态下。

>>> import random

>>> state = random.getstate()
>>> random.random()
0.15039710215996194
>>> random.random()
0.29023339773680357

>>> random.setstate(state)
>>> random.random()
0.15039710215996194

random.getrandbits(k)

返回一个 0~2^k 的随机整数,该方法随 Mersenne Twister 一起提供,getrandbits() 可以使 randrange() 能够处理任意大的范围。

整数方法

random.randrange(stop)

random.randrange(start, stop[, step])

从 range(start, stop[, step]) 中选择一个随机数返回,但其实并不会创建一个 range(start, stop[, step])

random.randint(a, b)

返回 [a,b] 范围内的整数,它实际上来自于 random.randrange(a, b+1)

序列方法

random.choice(seq)

从非空序列 seq 中随机选取一个元素返回,如果 seq 为空,则会引发 IndexError 。

random.choices(population, weights=None, *, cum_weights=None, k=1)

从 population 序列中随机选取 k 个元素组成列表并返回,如果 population 为空则引发 IndexError 。

random.shuffle(x[, random])

随机打乱序列 x 中的元素排列,可选参数random是一个无参函数,在[0.0,1.0)中返回随机浮点数,默认情况下使用 random() 函数。另外,x 必须是可变序列。如果想打乱不可变序列的元素排列,可以使用 sample(x, k=len(x)) 。

random.sample(population, k)

从 population 序列中随机不重复选取 k 个元素组成列表并返回,并且不会对原序列造成任何影响。返回的列表将按照选择的顺序进行排列。如果 k 大于 population,则会引发 ValueError 。

真值分布

random.random()

返回 [0.0, 1.0) 范围内的下一个随机浮点数。

random.uniform(a, b)

返回 [a, b] 范围内的随机浮点数。

random.triangular(low, high, mode)

random.betavariate(alpha, beta)

β分布。返回的结果在0~1之间

random.expovariate(lambd)

指数分布。 lambd是1.0除以所需的平均值。它应该是非零的。

random.gammavariate(alpha, beta)

Gamma分布。 (不是伽玛函数!)参数的条件是alpha> 0和beta> 0。

random.gauss(mu, sigma)

高斯分布。 mu是平均值,sigma是标准偏差。这比下面定义的normalvariate()函数稍快。

random.lognormvariate(mu, sigma)

记录正态分布。如果你采用这个分布的自然对数,你将获得具有平均μ和标准偏差西格玛的正态分布。 mu可以有任何值,sigma必须大于零。

random.normalvariate(mu, sigma)

正态分布。 mu是平均值,sigma是标准偏差。

random.vonmisesvariate(mu, kappa)

卡帕分布

random.paretovariate(alpha)

帕累托分布。 alpha是形状参数。

random.weibullvariate(alpha, beta)

威布尔分布。 alpha是scale参数,beta是shape参数。



 

猜你喜欢

转载自blog.csdn.net/weixin_43237709/article/details/121284627