Python 检查一组中坐标与另一组中坐标的接近度

Python 检查一组中坐标与另一组中坐标的接近度,python,algorithm,nearest-neighbor,Python,Algorithm,Nearest Neighbor,我有两组坐标: {(x1,y1),…(xn,yn)} {(w1,z1),…(wn,zn)} 我想把第二组中的每一对和第一组中最接近的一对配对。我的组很大,因此搜索需要高效。 如有任何关于设置此设置的建议,将不胜感激。此外,如果我有两个组,组1={(x1,y1,z1),…(xn,yn,zn)}和组2={(u1,v1,w1),…(un,vn,wn)},我的答案会有什么不同?此外,考虑到我的组太大,无法存储在计算机上,因此,如果有任何解决此问题的建议,我们将不胜感激。您可以使用a:此算法可以有效地找到

我有两组坐标:

  • {(x1,y1),…(xn,yn)}
  • {(w1,z1),…(wn,zn)}
  • 我想把第二组中的每一对和第一组中最接近的一对配对。我的组很大,因此搜索需要高效。 如有任何关于设置此设置的建议,将不胜感激。此外,如果我有两个组,组1=
    {(x1,y1,z1),…(xn,yn,zn)}
    和组2=
    {(u1,v1,w1),…(un,vn,wn)}
    ,我的答案会有什么不同?此外,考虑到我的组太大,无法存储在计算机上,因此,如果有任何解决此问题的建议,我们将不胜感激。

    您可以使用a:此算法可以有效地找到最近的邻居,从而大大减少比较次数。“KD”代表“k维”,这意味着它可以处理任意数量维的数据(回答您的最后一个问题)


    您可以使用其中一个列表构建树,然后为另一个列表的每个元素查询最近的元素。Scipy提供了一个.

    我不认为你能比计算每个组合的距离并检查最小组合的距离做得更好。这要求您计算
    n
    对象的距离
    n
    次,因此只需计算
    n^2
    即可获得距离。如果你的数据集真的像你说的那么大,那么你基本上可以忘记那些在未来几千年内完成的计算。关于这些点的范围和分布,你已经知道了什么?@Prune-Hi——关于坐标的范围和分布,没有什么特别知道的。有效的搜索算法应适用于任何用户指定的n值。以及如何处理超大数据集。如果您能提供这方面的工作示例,我们将不胜感激。谢谢。谢谢你的回复。你能给出一个小的最小工作示例,它可以推广到任何大小为n的坐标吗?还有关于我后续问题的建议吗?看起来你想让我们为你写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。展示这一努力的一个好方法是包含一个。特别是检查一下。