Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找元组及其对应对上的最大值_Python_Numpy_Tuples - Fatal编程技术网

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

我有一个很长的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=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函数。非常感谢