Python 查找元组及其对应对上的最大值
我有一个很长的Python元组,我想在其中找到最大的值。我有一些数值和它们的概率,元组样本如下:Python 查找元组及其对应对上的最大值,python,numpy,tuples,Python,Numpy,Tuples,我有一个很长的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\u tuple=maxmapp
(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\u tuple=maxmappmax,tuple\u list[1],但它只给了我最高的概率,而不是它对应的数字,如何提取最高的第二个数字概率来创建一个新的tuple?您可以压缩这两个元素,并使用自定义键获得最大值
>>> max(zip(*l), key=lambda x:x[1])
(3, 0.8)
您可以压缩这两个元素,并使用自定义键获得最大值
>>> max(zip(*l), key=lambda x:x[1])
(3, 0.8)
您可以将两个数组压缩在一起,然后将一个键函数传递给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)
您可以将两个数组压缩在一起,然后将一个键函数传递给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)
你可以做:
>>> tuple(np.stack(data)[:,np.argmax(data[1])])
(3.0, 0.8)
你可以做:
>>> tuple(np.stack(data)[:,np.argmax(data[1])])
(3.0, 0.8)
对这正是我所需要的,我必须使用zip函数。非常感谢!这正是我所需要的,我必须使用zip函数。非常感谢