在多个数组中查找最近的值并将它们分组

2024-04-16 13:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个平面上跟踪多个物体的质心,每个截面(n个截面)都有n个不同的x,y质心坐标数组。你知道吗

我想在x和y的每个数组中找到最接近的值(因此:在z方向上重叠最多的质心(即:跨不同的部分)。我通过numpy找到了关于“查找最近的”的主题,但我不知道如何跨数组执行此操作,并将结果质心重叠分组到一个数组中。你知道吗

我确实找到了空间距离.cdist,但我不知道如何在这里实现它。你知道吗

我的尺寸(np.阵列)如下所示:

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应该包含相邻节中的质心。你知道吗

非常感谢!你知道吗


Tags: incoordinatefornpsectionmask数组find