Python中生成随机数会用到两个模块:
- random模块
- numpy库中的random函数
random模块
random模块有7个内置函数
random()函数
随机生成[0,1)的一个浮点数
In [1]: import random In [2]: random.random() Out[2]: 0.790779121768541 In [3]: random.random() Out[3]: 0.24973021250373717
uniform(a,b)函数
随机生成一个[a,b)区间的浮点数
In [4]: random.uniform(2,4) Out[4]: 2.6913975385391598 In [5]: random.uniform(1,4) Out[5]: 2.3182404614021372 In [6]: random.uniform(1,4) Out[6]: 1.9318705894038843
randint()函数
随机生成一个[a,b)区间的随机整数
In [8]: random.randint(1,5) Out[8]: 5 In [9]: random.randint(1,5) Out[9]: 1 In [10]: random.randint(1,5) Out[10]: 3
choice(sequence)函数
从一个非空序列中随机挑选一个元素
In [16]: random.choice([[1,2],(5,6)]) Out[16]: (5, 6) In [17]: random.choice([[1,2],(5,6)]) Out[17]: [1, 2] In [18]: random.choice(range(10)) Out[18]: 2
randrange ([start,] stop [,step])
从指定整数范围内,按步长step随机选取一个数字
In [19]: random.randrange(1,8,3) Out[19]: 4 In [20]: random.randrange(1,8,3) Out[20]: 4 In [21]: random.randrange(1,8,3) Out[21]: 7
shuffle(list)
就地打乱一个列表
In [22]: lst=[1,2,2,1,5] In [23]: random.shuffle(lst) In [24]: lst Out[24]: [2, 5, 1, 2, 1]
random.sample(sequence,k)
从某一序列中获取指定长度的片段,乱序
In [25]: a = ['香蕉','苹果','橘子','眼影','眼线'] In [26]: random.sample(a,3) Out[26]: ['眼线', '眼影', '橘子'] In [27]: random.sample(a,2) Out[27]: ['橘子', '眼线']