python指定概率选择元素_Python 以指定的概率選取元素

在Python中,可以使用自定义函数`random_pick`来根据给定的概率列表从另一个列表中按概率选择元素。`random_pick`通过计算累积概率并与随机数比较来实现这一功能。确保输入列表长度一致且概率总和为1.0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 以指定的概率選取元素

Problem

You want to pick an item at random from a list, just about as random.choice does, but you need to pick the various items with different probabilities given in another list, rather than picking any item with equal probability as random.choice does.

Solution

Module random in the standard Python library offers a wealth of possibilities for generating and using pseudo-random numbers, but it does not offer this specific functionality, so we must code it as a function of our own:importrandomdefrandom_pick(some_list, probabilities):

x= random.uniform(0,1)

cumulative_probability= 0.0

for item, item_probability inzip(some_list, probabilities):

cumulative_probability+=item_probabilityif x

return item

random.uniform(0,1)->生成0.0到1.0之間的偽隨機數,之后循環元素及其概率,計算累積概率.

如:random_pick([1,2,3,4],[0.1,0.2,0.3,0.4])

當x處於0.0到0.1之間,則輸出1

當x處於0.1到0.3之間,則輸出2

……

Example

#以指定的概率獲取元素 以一個列表為基准概率,從一個列表中隨機獲取元素

importrandomdefrandom_pick(some_list, probabilities):

x= random.uniform(0,1)

cumulative_probability= 0.0

for item, item_probability inzip(some_list, probabilities):

cumulative_probability+=item_probabilityif x < cumulative_probability:break

returnitem

some_list= [1,2,3,4]

probabilities= [0.2,0.1,0.6,0.1]print random_pick(some_list,probabilities)

【注意】要求 some_list 的長度和 probabilities 的長度一致,以及所有元素的概率相加為1.0

【References】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值