在多个阵列中找到最近的值并将它们分组

时间:2017-06-19 17:33:52

标签: python arrays numpy tracking centroid

我在一个平面上跟踪多个物体的质心,并且对于我所拥有的每个部分(n个部分)都有n个不同的质心x,y坐标数组。

我想在x和y中的每个数组中找到最接近的值(所以:在z方向上重叠最多的质心(即:跨越不同的部分)。我找到了关于&find;找到的主题最接近'通过numpy,但我无法弄清楚如何在数组中执行此操作并将结果质心重叠在一个数组中。

我找到了scipy.spatial.distance.cdist,但我不知道如何在这里实现它。

我的测量结果(np.arrays)如下所示:

section_1: [432,23],[23,235]...
section_2: [562,13],[71,575]...

此问题非常相关,但不会为每对质心返回一个数组:Euclidean distance between points in two different Numpy arrays, not within

我是Python的初学者,所以请温柔地对待我。我知道下面的代码不会起作用,但我正在寻找类似的东西。

# CREATE SEPARATE ARRAYS FOR SECTIONS
s = {}
width = list(range(1,10000))

sections = np.unique(measurements[:, 3])
for x in sections:
    mask = measurements[:, 3] == x
    s[x] = measurements[mask, 1:3]

 # FIND CLOSTEST COORDINATES THAT OVERLAP IN THOSE SECTIONS
 def find_nearest_coordinate(centroids0, centroids1):
   idx = np.array([np.linalg.norm(x+y) for (x,y) in object0-object1]).argmin()
   return np.array[idx]

 for i, x in enumerate(sections):
     if x > max(sections) - 1:
         break

 find_object2 = find_nearest_coordinate(s[1], s[2])

这最终会产生对象_''每个对象的数组。它应包含z方向上的所有x.y坐标。 Object0应包含一个特定部分中的所有质心,Object1应包含相邻部分中的质心。

非常感谢!

0 个答案:

没有答案