我有3个标签:“ A”,“ B”,“ C”。
我想生成一个包含100个元素的随机列表,其中60%是“ A”,30%是“ B”,10%是“ C”。
我怎样才能做到这一点?(我是python的新手,希望这个问题不要太傻。)
编辑:我的问题与此问题略有不同:生成具有给定(数字)分布的随机数
就像在评论中一样,我希望其中的60%是“ A”,不是每个元素都有60%的概率是“ A”。所以numpy.random.choice()对我来说不是解决方案。
如果您想精确地将60%设为A,30%B和10%C,并且知道总共必须有100个元素,则可以执行以下操作:
import random
num = 100
prob_a = 0.6
prob_b = 0.3
prob_c = 0.1
As = int(num*prob_a) * 'A'
Bs = int(num*prob_b) * 'B'
Cs = int(num*prob_c) * 'C'
# create a list with 60 As, 30 Bs, and 10 Cs
chars = list(As + Bs + Cs)
random.shuffle(chars)
print("".join(chars))
这将输出类似 BAAAAABBCBAABABAAAACAABBAABACAACBAACBBBAAACBAAAABAAABABAAAAABBBABAABAABAACCAABABAAAAAACABBBBCABAAAAA
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句