如何从python中的2D列表中获取最大x和最小y坐标?

我有一个看起来像这样的列表:

[[8.91636727 0.50420552]
 [1.50918535 8.43128826]
 [4.18447757 0.21850886]
 [8.82701669 8.39773898]]

本质上,它们是x,y坐标,我想知道如何获得具有最低y的最高x。 (即8.91 ..和0.50 ..)。我从X开始,然后想到做:

for x,y in means:
    if x >= start:
        start = x; h = x; l = y 
    else:
        start = start

但是我想知道如何在y的最小值内实现这一点。 另外我的另一个问题是,可能会发生以下情况:

[[8.91636727 0.50420552]
 [1.50918535 8.43128826]
 [4.18447757 0.21850886]
 [**8.92701669** 8.39773898]]

在我不必总是总是自己想要最高的x的情况下,我想要最高的x和最低的y。

chenmin1258 回答:如何从python中的2D列表中获取最大x和最小y坐标?

这是使用max的一种方法。

例如:

data = [[8.91636727,0.50420552],[1.50918535,8.43128826],[4.18447757,0.21850886],[8.82701669,8.39773898]]
print(max(data,key=lambda x: (x[0],-x[1])))

输出:

[8.91636727,0.50420552]
,

您可以计算xy向量之间的差。然后选择差异最大的一个。如果这不是您想要的,我必须担心您。您所说的是多目标优化。您必须明确定义最高x和最低y的元素的含义。如果您不能将其放在单个函数中,则从根本上讲不可能采用一个元素。您必须先计算pareto前沿,然后从那里手动获取一个元素。

,

我最后的方法是:

li = []
difference = 0
for x,y in means:
    dif = x - y
    if dif >= difference:
        difference = dif; h = x; l = y 
    else:
        difference = difference
本文链接:https://www.f2er.com/3036972.html

大家都在问