【问题标题】:Python - Find closest indices from 2 setsPython - 从 2 个集合中查找最接近的索引
【发布时间】:2020-10-25 06:44:12
【问题描述】:

我有 2 组索引 (i,j)。 我需要得到的是与 2 个集合最接近的 2 个索引。 用图形来解释更容易:

假设我拥有构成第一个黑色形状的所有索引以及构成第二个黑色形状的所有索引,我如何以有效的方式找到这两个形状之间最接近的索引(图中的红点)方式(在 Python 中内置函数,而不是通过迭代所有可能性)?

任何帮助将不胜感激!

【问题讨论】:

  • 看起来你需要找到connected components,然后从两个集合中找到具有较小欧几里得距离的坐标对。一个最小的可重现示例会有所帮助。
  • 您考虑过scipy.spatial.distance 模块吗?我认为没有办法计算所有对组合之间的距离,但scipy 模块至少可以从编译代码中完成。
  • 你可能想看看scipy.spatial.cKDTree

标签: python numpy image-processing scipy


【解决方案1】:

当您询问内置函数而不是循环遍历所有组合时, scipy.spacial.distance 中有一个方法可以做到这一点 - 它输出所有 2 个输入对之间的距离矩阵。如果 A 和 B 是二维点的集合,则:

from scipy.spatial import distance  
dists = distance.cdist(A,B)

那么就可以得到矩阵中最小值的索引了。

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2012-02-13
    • 2013-03-29
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2015-04-18
    相关资源
    最近更新 更多