繁体   English   中英

找到具有对应对的元组上的最大值

[英]Find the max value on a tuple with its corresponding pair

我有一个很长的 Python 元组,我想在其中找到最大值。 我有一些数值和它们的概率,元组样本是这样的:

(array([ 5,  5,  3, ..., -1, -4, --5]), array([ 0.25,  0.75,  0.8, ...0.05, 0.2, 0.6])

我想要的是能够提取最大的概率但得到相应的数值(X),基本上创建一个新的元组。 根据上面的数字,类似这样的事情:

> Max tuple: ([3,0.8]) 

例如,我已经完成了这样的事情new_tuple = max(map(max, tuple_list))[1] ,但它只给了我最高的概率而不是它对应的数字,我如何提取最高的第二个数字(概率)创建一个新的元组?

您可以压缩这两个元素并使用自定义键获得最大值。

>>> max(zip(*l), key=lambda x:x[1])
(3, 0.8)

你可以做:

>>> tuple(np.stack(data)[:,np.argmax(data[1])])
(3.0, 0.8)                                                                                                                                                                                                         

您可以将两个数组zip在一起,然后将一个key函数传递给max以选择具有第二个数组中最大元素的对。

>>> import numpy as np
>>> data = (np.array([ 5,  5,  3, -1, -4, -5]), np.array([ 0.25,  0.75,  0.8, 0.05, 0.2, 0.6]))
>>> max(zip(*data), key=lambda i: i[1])
(3, 0.8)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM