因为要做数值仿真实验,用到了随机生成模块random
因此,将相关用法列出如下:
#todo 产生随机数的模块
import random
random.uniform(3,4) # 3到4之间的均匀分布
random.gauss(5,1) # 以5为均值,1为方差的高斯分布。
random.normalvariate(5,1) # 以5为均值,1为方差的高斯分布。
random.randint(4,8) # 从4,5,6,7,8中随机挑出一个整数值。
random.choice([1,4,6,8,0]) # 从1,4,6,8,0中随机挑出一个值。
random.random() # 0-1之间均匀分布的一个实数。
random.sample([randint(10,20) for _ in range(10)], 5)#从10~20间随机抽取5个数;
# Dataframe.sample(n=3,random_state=1)#随机选几行数据
random.choices(population, weights=None, *, cum_weights=None, k=1)
#从population中进行K次随机选取,每次选取一个元素(注意会出现同一个元素多次被选中的情况),
#weights是相对权重值,population中有几个元素就要有相对应的weights值,
#cum_weights是累加权重值,例如,相对权重〔10, 5, 30,5〕相当于累积权重〔10, 15, 45,50〕。
#在内部,在进行选择之前,相对权重被转换为累积权重,因此提供累积权重节省了工作。返回一个列表。
#todo numpy中随机数生成模块
np.random.choice([1,4,6,8,0],replace=True,p=[0.1,0.2,0.3,0.3,0.1])
#replace指定为True时,采样的元素会有重复;当replace指定为False时,采样不会重复。
#p为每一个数值选择的概率,加和必须为1
具体应用:
生成验证码(随机数字和字母):
auth = "" #定义全局验证码变量
for i in range(0,4):
#定义循环4次,形成4位验证码。
current = random.randint(0,4) #定义一个随机0-4的一个范围,去猜i 的值。
if current == i: #如果current 和i 的值一样
current_code = random.randint(0,9) #生成一个随机的数字
else: #如果current和i 的值不一样
current_code = chr(random.randint(65,90)) #生成一个随机的字母,这里一定要主义chr()转换一下。
auth += str(current_code) #将每次随机生成的值赋值给auth
print(auth)