python - 将三个列表与概率进行比较并定义 argmax 规则
问题描述
考虑一个数据集X
,它是一个len(X)
x2 numpy 数组,包含平面中的点(每行是 x 和 ay 坐标),这些点已通过 3 个不同的概率分布进行采样。假设存在一个函数f
,它以输入为输入X
并生成 3L1,L2,L3
个长度列表len(X)
,每行对应于一个点属于分布 1,2 或 3 的概率。
例如,我们可以有:
L1[0]=0.8, L2[0]=0.1, L3[0]=0.1
这意味着它X[0]
属于分布 1,因为概率 0.8 是最大的并且属于L1
。
如何使用“广义 argmax”函数,例如创建三个列表,每个分布一个,对应于发现属于每个分布的点?
换句话说,我如何比较三个列表的L1,L2,L3
每一行并使用规则将每一行(对应于数据集的每个元素X
)分配给一个新列表:
如果L1[i]>L2[i] & L1[i]>L2[i]
thenX[i]
属于/保存到New_list1
.
如果L1[i]>L2[i] & L1[i]<L3[i]
那么X[i]
属于/保存到New_list3
否则X[i]
属于/保存到New_list2
.
注意:如果我只有两个数组L1,L2
,我可以执行以下操作:
arg_max = L1 > L2
New_list1, New_list2 = X[arg_max], X[~arg_max]
当然,这不适用于三个列表。我需要一个“三元”系统。
解决方案
推荐阅读
- stripe-payments - 如何使用两个 Dashboard Stripe 帐户
- c++ - 检查是否使用 std::bitset<8> 设置了多个位
- git - 如何手动检查两个 git 提交之间的差异?
- c# - 恢复带有圆形边框的 xaml 窗口
- python - 满足两个条件时用前一行减去一行
- xml - 使用 Bing Ads SOAP API 时如何调试 202 HTTP 状态代码?
- python - 无法使用 Python/PySimpleGUI 捕获具有多个用户输入的 API 数据
- python-3.x - Python AWS lambda - 带有 playwright 模块的 Dockerfile
- python - 多键字典中单个键的 Python 访问值
- python-3.x - 可以使用 PyTorch 进行回归