我有这样的清单
a = [.5,.57,.67,.8,1,1.33,2,4]
我需要在此列表中随机选择一个数字。在Python中,我通常会这样:
c = random.choice(a)
除外...这样做会使拾取偏向一个较低的值(密度在1左右比在4左右高)。
我将如何根据统一分布选择列表条目。如c = random.random()* 3.5 + .5,但实际上是从列表中选择的?]
我有一个这样的列表= [.5,.57,.67,.8,1,1.33,2,4]绘制时看起来像这样:我需要在该列表中随机选择一个数字。在Python中,通常会这样:c = random.choice(...
您可以从统一分布中获取浮点数,然后从列表中选择最接近此生成值的那一个。像这样:
g1 = []
g2 = []
g3 = []
g4 = []
g5 = []
g6 = []
g7 = []
g8 = []
g9 = []
g10 = []
for i, row in df.iterrows():
if 0 <= row['attr'] < 0.1:
g1.append(row['file_name'])
elif 0.1 <= row['attr'] < 0.2:
g2.append(row['file_name'])
elif 0.2 <= row['attr'] < 0.3:
g3.append(row['file_name'])
elif 0.3 <= row['attr'] < 0.4:
g4.append(row['file_name'])
elif 0.4 <= row['attr'] < 0.5:
g5.append(row['file_name'])
elif 0.5 <= row['attr'] < 0.6:
g6.append(row['file_name'])
elif 0.6 <= row['attr'] < 0.7:
g7.append(row['file_name'])
elif 0.7 <= row['attr'] < 0.8:
g8.append(row['file_name'])
elif 0.8 <= row['attr'] < 0.9:
g9.append(row['file_name'])
else:
g10.append(row['file_name'])
print(len(g1),len(g2),len(g3),len(g4),len(g5),len(g6),len(g7),len(g8),len(g9),len(g10))
print(len(g1)+len(g2)+len(g3)+len(g4)+len(g5)+len(g6)+len(g7)+len(g8)+len(g9)+len(g10))
random.seed(42)
file_lst_sub = random.sample(g1,200)+random.sample(g2,200)+random.sample(g3,200)+\
random.sample(g4,200)+random.sample(g5,200)+random.sample(g6,200)+\
random.sample(g7,200)+random.sample(g8,200)+random.sample(g9,300)