首页 > 解决方案 > 如何根据特定条件分配概率?

问题描述

我在这里撞到了一堵墙。所以我随机抽取 10 个元素的样本,我想根据某些条件给它们概率。假设我有这个随机样本 [1, 3, 5, 7, 13, 16, 6, 9, 22, 15] 所以我想根据与 int 的相对距离为 8 给每个数字一个概率。进一步的元素从 8 开始,概率较小。在这种情况下,7 和 9 的概率相同,最大的概率和 22 的概率最小?

我试图找到一些 numpy 函数,但没有成功。

谢谢!

标签: pythonnumpyrandom

解决方案


你必须做两件事。创建概率,并根据它进行选择。创建它

data = np.array([1, 3, 5, 7, 13, 16, 6, 9, 22, 15])
p = 1 / np.abs(data - 8)

(这只是想法,您没有具体说明您希望概率如何随距离变化)

对于第二部分,numpy.choice函数(在最近的numpy 版本中)可以接受数组p以从data


推荐阅读