以指定的概率选取元素

算个小算法吧

前提是:保证平等。

https://www.cnblogs.com/shenxiaolin/p/7810048.html

 

import random 

def random_pick(some_list, probabilities): 
    x = random.uniform(0,1) 
    cumulative_probability = 0.0 
    for item, item_probability in zip(some_list, probabilities): 
         cumulative_probability += item_probability 
         if x < cumulative_probability:
               break 
    return item 



转载于:https://www.cnblogs.com/sun-shadow/p/11497758.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: np.random.choice函数是numpy库的一个随机选取函数,可以根据给定的概率值来选择元素。 当我们需要从一个数组或列表按照一定概率进行选择时,可以使用np.random.choice函数。具体来说,它接受三个参数:a,size和p。 a表示要从选择的数组或列表。size表示要选择的元素个数,可以是一个整数或一个元组。如果size是一个整数,那么只会选择一个元素。如果size是一个元组,那么会选择对应元组长度的元素。p表示选取个元素概率值,是一个与a长度相同的数组或列表。 举个例子来说,假设我们有一个数组a = [1, 2, 3, 4, 5],我们想根据概率p = [0.1, 0.2, 0.3, 0.2, 0.2]来选择元素,且只选择一个元素。那么可以使用np.random.choice(a, 1, p=p)来实现。 这样,函数将根据概率值p来选择元素,选择结果可能是1、2、3、4或5,但选择的概率符合给定的概率分布。 总之,np.random.choice函数可以根据给定的概率值来选择数组或列表元素,并且可以灵活地指定选择的数量。这对于模拟实验、随机抽样等场景非常有用。 ### 回答2: 在NumPy,np.random.choice()函数可以用来从指定的一维数组指定概率进行随机抽取。 首先,我们需要指定一个一维数组作为抽取的候选池,可以是任意长度的数组。然后,我们可以使用参数p来指定个元素被抽取的概率。p参数需要是一个与候选池数组长度相等的一维数组,其的值表示每个元素被选概率。 接下来,我们可以指定抽样的大小,即我们希望从候选池抽取多少个元素。使用参数size来指定,可以是一个整数或者一个元组,表示抽样的维度。若size为整数,则表示从一维数组抽取size个元素;若size为元组,则表示从候选池抽取相应维度的元素。 当概率p为空时,默认每个元素被选概率相等。 下面是一个例子,假设我们有一个候选池为[1, 2, 3, 4, 5],并且我们希望以0.1、0.3、0.2、0.15和0.25的概率分别抽取这五个元素。我们可以使用np.random.choice()函数来实现: ``` python import numpy as np pool = [1, 2, 3, 4, 5] probabilities = [0.1, 0.3, 0.2, 0.15, 0.25] result = np.random.choice(pool, size=3, p=probabilities) print(result) ``` 输出结果可能为[2, 5, 3],表示从候选池指定概率抽取了3个元素。每次运行结果可能不同,因为抽取是随机的。 总之,np.random.choice()函数可以帮助我们在指定的一维数组指定概率进行随机抽取。这在模拟实验、生成随机样本等方面都很有用。 ### 回答3: 在Python的NumPy库,np.random.choice函数可以用于从给定的一维数组随机选择元素。不过,该函数还可以通过指定概率来增加元素的选概率。 当我们调用np.random.choice函数时,可以通过参数p传入一个概率数组,其元素与选择元素数组的元素一一对应。这样,选择元素概率就由概率数组对应位置的元素值决定。 概率数组元素值表示了对应元素被选择的相对概率。例如,如果某个元素概率数组的值是2,而其他元素的值都是1,那么该元素被选择的概率就是其他元素被选择的两倍。 如果不提供概率数组,np.random.choice函数会默认将每个元素的选择概率设置为相等。但是,如果提供了概率数组,每个元素被选择的概率将根据概率数组指定的相对概率进行调整。 下面是一个例子,假设我们有一个一维数组arr=[1, 2, 3, 4],并且想要根据相对概率[0.1, 0.2, 0.3, 0.4]来选择元素。我们可以使用np.random.choice函数来实现: import numpy as np arr = [1, 2, 3, 4] prob = [0.1, 0.2, 0.3, 0.4] chosen = np.random.choice(arr, p=prob) 在这个例子,被选择的元素将根据概率数组的相对概率进行选择。元素2被选择的概率元素1被选择概率的两倍,元素3被选择的概率元素1的三倍,元素4被选择的概率元素1的四倍。 需要注意的是,传入的概率数组的元素值应该是非负数,并且概率数组的总和应该为1。如果概率数组不满足这些条件,函数的行为将是不确定的。 希望以上解答能帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值