gpt4 book ai didi

python - 如何按元素比较 3 个 numpy 数组并将结果作为具有最大值的数组?

转载 作者:行者123 更新时间:2023-11-28 20:56:08 25 4
gpt4 key购买 nike

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]])

我想按元素比较这三个 numpy.ndarray 并找出哪个数组的概率最大。其中三个数组的长度相同。我试图实现这样的东西,但这是不正确的。

for i in range(len(predict_prob1)):
if(predict_prob1[i] > predict_prob2[i])
c = predict_prob1[i]
else
c = predict_prob2[i]
if(c > predict_prob3[i])
result = c
else
result = array[i]

请帮忙!!

最佳答案

对我来说,你问的不是很清楚 — 如果你想要的结果是一个 4x2 数组,索引三个数组中哪个在 i,j 位置有最大值 那么你想使用 np.argmax

>>> 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我将以下内容添加到我的答案中

>>> names = np.array(['predict_prob%d'%(i+1) for i in range(3)])
>>> names[np.argmax((predict_prob1,predict_prob2,predict_prob3),0)]
array([['predict_prob1', 'predict_prob3'],
['predict_prob1', 'predict_prob2'],
['predict_prob1', 'predict_prob2'],
['predict_prob1', 'predict_prob2']], dtype='<U13')
>>>

关于python - 如何按元素比较 3 个 numpy 数组并将结果作为具有最大值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55062928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com