【问题标题】:Find value groups in a numpy array and calculate the distance between them在 numpy 数组中查找值组并计算它们之间的距离
【发布时间】:2019-07-13 04:36:28
【问题描述】:

我有一个巨大的 numpy 二维数组。我想找到具有相同值的点组并找到最接近的相似组的距离。一个例子:

0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0 12  0  0  0
0  0  0  0  0  0  0 12 12  0  0  0
0  0  0  0  0  0 12 12 12 12  0  0
0  0  0  0  0 12 12 12 12  0  0  0
0  0  0  0 12 12 12 12  0  0  0  0
0  0 12 12 12 12 12  0  0  0  0  0
0 12  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0 20 20 20  0
0  0  0  0  0  0  0  0  0 20 20  0
0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0 14 14  0  0  0  0  0
0  0  0  0  0 14 14  0  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0

在这种情况下,我有三个组:12、20 和 14。我想找到这些组,然后计算它们之间的最小距离。第12组的情况下,最近的是第20组,距离为sqrt(2^2+4^2)=4.47

我该怎么做?

【问题讨论】:

  • 你知道这个数组有多稀疏吗?
  • 我很稀疏,但很多。

标签: python numpy matrix grouping


【解决方案1】:

您可以尝试使用具有固定半径的圆形内核的膨胀。接下来,如果有一个非零点改变了一个组,那么记住它以前的和更新的组。使用二等分来选择一个新的半径。在 log(size) 迭代后,您将获得最小半径和一对相关组。

【讨论】:

    猜你喜欢
    • 2017-04-21
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2021-06-25
    相关资源
    最近更新 更多