我有一个巨大的Numpy 2D数组。我想找到具有相同值的点组,并找到最接近的相似组的距离。一个例子:
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
。
我该怎么做?
答案 0 :(得分:0)
您可以尝试对固定半径的圆形核使用膨胀。接下来,如果存在一个非零点更改了组,则记住其先前和更新的组。使用二等分选择新的半径。 log(size)迭代后,您将获得最小半径和一组相关的对。