random

生成单个随机数

# encoding:utf-8
import random

### 生成单元素
a = random.random()
# 返回0-1之间的随机浮点数
print(a)        # 0.2473362446838867

b = random.uniform(1, 10)
# 返回指定范围内的随机浮点数,上下限可互换
print(b)                        # 3.7800015747308917
print(random.uniform(10, 1))    # 6.59216478923806

c = random.randint(1, 10)
# 返回指定范围内的整数,上下限不可互换
print(c)        # 8
# print(random.randint(10, 1))

d = random.randrange(1, 10, 2)
# 返回序列内的一个随机数,注意此处并不生成序列
print(d)        # 7

e = random.choice(range(10))
# 随机选择序列内的一个数
print(e)        # 3

# f = random.choices(range(10))
# # 返回一个单元素的子序列
# print(f)        # [7]

g = random.sample(range(10), 3)
# 从序列中随机选择n个元素,注意返回的顺序是乱序
print(g)        # [8, 2, 9]

data = [1, 2, 3, 4, 5]
j = random.shuffle(data)
# 将序列顺序打乱,注意这里不生成新序列,也就是这个序列必须是可变数据
print(j)        # None
print(data)     # [1, 4, 5, 2, 3]

# 如果是不可变数据
data2 = (1, 2, 3, 4, 5)
data2_shuffle = random.sample(data2, len(data2))
print(data2_shuffle)    # [1, 3, 4, 2, 5]

注意python2中没有 random.choices

随机种子seed

seed方法改变随机数生成器的种子,通常在调用随机模块之前调用该方法。

seed种子相同时,生成的随机数相同,seed种子不同时,生成的随机数不同,种子之间可以互相切换。

print(random.random())  # 随机生成

random.seed(0)
print(random.random())  # 每次结果相同    0.844421851525
print(random.random())  # 每次结果也相同,但不同于上一句的结果    0.75795440294


random.seed(1)
print(random.random())  # 0.134364244112

random.seed(0)
print(random.random())  # 0.844421851525    可以根据seed切换

print(np.random.random())   # 随机的,random模块设定seed不影响np模块

np.random.seed(0)
print(np.random.random())   # 每次结果相同
原文地址:https://www.cnblogs.com/yanshw/p/10562811.html