我遇到的问题很难用一般的方式描述,所以我描述了实际的问题。
我在一个图像中有一些点,它们有一个特定的ID,而我在另一个图像中有大量的点,有些具有相同的ID,我想链接到第一个图像中的点。链接应该在元组中的位置上。ID1不一定要在位置1,但对应的点应该在两个元组中的相同位置。
ID1 = (1, 2, 3, 4)
ID2 = (5, 3, 1, 2, 4)
points1= ((1,2), (1, 4), (3,5), (7,8))
points2= ((1,3), (2, 4), (2,5), (4,8), (3,9))
我需要的是一个排序后的输出,如下所示
points_1_outpout = ((1,2), (1, 4), (3,5), (7,8))
points_2_output = ((2,5), (4, 8), (2,4), (3,9))
如cow所愿我所做的是:(而且它很丑,而且不能真正工作,因为我不能期望没有“洞”就有越来越多的ID)
import numpy as np
ID1 = (1, 2, 3, 4)
ID2 = (5, 3, 1, 2, 4)
ID1 = np.asarray(ID1)
Id2 = np.asarray(ID2)
points1= ((1,2), (1, 4), (3,5), (7,8))
points2= ((1,3), (2, 4), (2,5), (4,8), (3,9))
points1 = np.asarray(points1)
points2 = np.asarray(points2)
##points_1_outpout = ((1,2), (1, 4), (3,5), (7,8))
###points_2_output = ((2,5), (4, 8), (2,4), (3,9))
ID1sort, Corner1sort = zip(*sorted(zip(ID1, points1)))
ID2sort, Corner2sort = zip(*sorted(zip(ID2, points2)))
2条答案
按热度按时间vlju58qv1#
您可以使用
zip
将id与点匹配,然后允许元组排序对它们进行正确排序。Map用于删除输出的订单ID。
dphi5xsq2#
可能不是最佳的,但你可以这样做:
输出:
如果使用
Pandas
:输出: