Python中的random模块中的随机数问题

1.random.random()

随机生成[0, 1)均匀分布的一个数

import random
import seaborn as sns

data = [random.random() for i in range(1000)]
sns.distplot(data)

 2. random.uniform(a, b)

生成[a,b]均匀分布的一个随机数

data = [random.uniform(1, 5) for i in range(1000)]
sns.distplot(data)

 

 3. random.randint(a, b)

生成[a,b] 之间的一个随机整数, a, b必须是整数或者X.0的浮点数

data = [random.randint(1, 5) for i in range(10000)]
sns.distplot(data)

 4. random.choice(列表/元组/字符串)

随机从列表中选取一个元素

data = [random.choice(range(10)) for i in range(10000)]
sns.distplot(data)

 5. random.sample(列表/元组/字符串, k=n)

随机从列表中选取n个不重复的元素, 但是如果序列中有重复的元素, 那就会有重复的元素

# 如果k大于序列的长度会报错
random.sample(range(5), 6)

 

random.sample([1, 2, 3, 3, 2, 1], 6)

 结果:[1, 2, 3, 1, 3, 2]

# 验证没有重复的元素
data = random.sample(range(100), 100)
print(len(data))
print(len(set(data)))

结果:

100
100

6. random.choices(列表/元组/字符串, k=n, weights=[对应元素的权重]) 

随机从列表中选取n个的元素,可以重复的 

random.choices([1,2,3,4,5],k=3,weights=[1,0,1,0,0])
结果:[3, 3, 1]
data = random.choices(range(10),k=1000000,weights=range(1, 11))
sns.distplot(data)


版权声明:本文为a857553315原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。