Python中的random模块主要函数分析
该模块实现了各种分布的伪随机数生成器。
对于整数,从范围中有统一的选择。 对于序列,存在随机元素的统一选择、用于生成列表的随机排列的函数、以及用于随机抽样而无需替换的函数。
在实数轴上,有计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数。 为了生成角度分布,可以使用 von Mises 分布。
1、 浮点数相关random
-
random.random()
几乎所有模块函数都依赖于基本函数 random() ,它在半开放区间 [0.0,1.0) 内均匀生成随机浮点数。 -
random.uniform(a,b)
如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
import random
print(random.random()) # float random : [0,1)
print(random.uniform(10,20)) # float random: [10,20]
0.3969965506069474
10.926387716371753
2、整数用random
- random.randint(a,b)
- random.randrange(stop)
- randomm.randrange(start,stop[,step])
import random
print(random.randint(0,10)) # int range: [0,10]
print(random.randrange(0,10)) # int random: [0,10),就像range(0,10)的范围一样
print(random.randrange(0,10,2)) # int random: [0,10),偶数
10
7
6
3、序列用random,序列可以是list、string或者其他
- random.choice(seq)
- random.choices(population,weights=None,k)
- random.shuffle(x,random=None)
- random.sample(population,k)
print(random.choice("学习Python"))
print(random.choice(["JGood", "is", "a", "handsome", "boy"]))
print(random.choice(("Tuple", "List", "Dict")))
print(random.choices(["JGood", "is", "a", "handsome", "boy"],k=3))
print(random.choices(("Tuple", "List", "Dict"),weights=[10,2,3],k=2))
y
handsome
List
['is', 'handsome', 'a']
['List', 'Dict']
p = ["JGood", "is", "a", "handsome", "boy"]
random.shuffle(p) # replace the original list, return None
print(p)
print(random.sample(p,2))
['boy', 'a', 'is', 'JGood', 'handsome']
['is', 'a']
4、以上都是比较常用的随机数生成函数,还有其他根据函数分布生成随机数的函数,按照均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数。关于这个方面的可参见:random随机数文档
当然还有一个random的函数也很重要,random.seed() , 不要忘了。
网友评论