从概率分布做出选择
choices的Python项目详细描述
PDist的设计使其易于制作 事情以可能的方式发生。为密钥提供 附加相关概率,然后调用结果 当您需要新值时。
>>> mood = PDist({'happy': 0.3, 'neutral': 0.6, 'sad': 0.1}) >>> mood() 'happy' >>> mood() 'neutral'
您可以检索如何应用这些值的分布 通过访问PDist.distribution属性:
>>> mood.distribution [('happy', 0.3), ('neutral', 0.6), ('sad', 0.1)]
除了提供指定概率的指令外,您还可以 发送列表/元组列表。这允许不可散列 要使用的类型。这意味着您可以提供 用作键的函数:
>>> def grumpy(news): ... return ':/' >>> def happy(news): ... return ':)' >>> react = PDist([(grumpy, 0.7), (happy, 0.3)]) >>> reaction = react() >>> reaction("We're getting married!") ':/'
您不限于将输入变量添加到1。为了 例如,如果您只有一个计数图,并且希望从该样本计算概率分布,那么您也可以提供:
>>> spotted = {'geese': 0, 'ducks': 12, 'sparrows': 4, 'other': 39} >>> bird_pdist = PDist(spotted) >>> bird_pdist.distribution [('geese', 0.0), ('sparrows', 0.07272727272727272), ('ducks', 0.21818181818181817), ('other', 0.7090909090909091)]
支持检索特定密钥的概率。然而, 搜索策略效率很低,可能不应该使用 在交互式python shell之外。
>>> bird_pdist['geese'] 0.0