gpt4 book ai didi

python:找到两个数组中两点之间的最小距离

转载 作者:行者123 更新时间:2023-11-30 22:59:24 28 4
gpt4 key购买 nike

我有两个包含一系列元组 (x,y) 的列表,代表笛卡尔平面上的不同点:

a = [(0, 0), (1, 2), (1, 3), (2, 4)]
b = [(3, 4), (4, 1), (5, 3)]

在这种特定情况下,我想找到距离较小的两个点(每个列表一个,不在同一列表内):

[((2, 4), (3, 4))]

其距离等于1。我使用列表理解,如下:

[(Pa, Pb) for Pa in a for Pb in b \
if math.sqrt(math.pow(Pa[0]-Pb[0],2) + math.pow(Pa[1]-Pb[1],2)) <= 2.0]

但这使用了阈值。有没有办法附加 argmin()某处或类似的东西,只得到一对 [((xa, ya), (xb, yb))]最小距离?谢谢。

最佳答案

import numpy
e = [(Pa, Pb) for Pa in a for Pb in b]
e[numpy.argmin([math.sqrt(math.pow(Pa[0]-Pb[0],2) + math.pow(Pa[1]-Pb[1],2)) for (Pa, Pb) in e])]

将按照您的建议使用 argmin 并返回 ((2, 4), (3, 4))

关于python:找到两个数组中两点之间的最小距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35767987/

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