如何将数组与数组的最大值进行比较?

2024-10-05 10:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

numpy数组包含如下预测概率:

predict_prob1 =([[0.95602106, 0.04397894],
                 [0.93332366, 0.06667634],
                 [0.97311459, 0.02688541],
                 [0.97323962, 0.02676038]])

predict_prob2 =([[0.70425144, 0.29574856],
                 [0.69751251, 0.30248749],
                 [0.7072872 , 0.2927128 ],
                 [0.68683139, 0.31316861]])

predict_prob3 =([[0.56551921, 0.43448079],
                 [0.93321106, 0.06678894],
                 [0.92345399, 0.07654601],
                 [0.88396842, 0.11603158]])

我想比较一下这三个努比·恩达雷然后找出哪个数组的结果概率最大。其中三个数组的长度相同。我曾试图实施这样的不正确的东西。在

^{pr2}$

请帮忙!!在


Tags: numpy数组概率predictpr2prob2prob1prob3
3条回答

对我来说,还不完全清楚您在问什么-如果您想要的结果是一个4x2数组,索引三个数组中哪一个的最大值位于i,j那么您想使用^{}

>>> import numpy as np
>>> predict_prob1 =([[0.95602106, 0.04397894],
    [0.93332366, 0.06667634],
    [0.97311459, 0.02688541],
    [0.97323962, 0.02676038]])
>>> predict_prob2 =([[0.70425144, 0.29574856],
    [0.69751251, 0.30248749],
    [0.7072872 , 0.2927128 ],
    [0.68683139, 0.31316861]])
>>> predict_prob3 =([[0.56551921, 0.43448079],
    [0.93321106, 0.06678894],
    [0.92345399, 0.07654601],
    [0.88396842, 0.11603158]])
>>> np.argmax((predict_prob1,predict_prob2,predict_prob3), 0)
array([[0, 2],
       [0, 1],
       [0, 1],
       [0, 1]])
>>>

附录

在读了a comment of the OP之后,我在我的答案中添加了以下内容

^{pr2}$

您可以使用np.maximum.reduce

np.maximum.reduce([A, B, C])

其中ABC是{}

对于您的示例,结果是:

^{pr2}$

假设您希望,对于每一行,类0的概率最高的数组的索引:

which = 0

np.stack([predict_prob1, predict_prob2, predict_prob3], axis=2)[:, which, :].argmax(axis=1)

输出:

^{pr2}$

对于1级:

array([2, 1, 1, 1])

相关问题 更多 >

    热门问题