我有两个数组,它们是聚类算法的输出。是否有可能自动找到关联映射。
考虑两个标签数组:
array1 = [0,0,1,2,3]
array2 = [4,4,6,8,7]
从外观上看,它们看起来是相同的,但是对于更大的标签集,我想找到一个像{0:4,1:6,2:8,3:7}
这样的映射。
Python是否有任何方法可以做到这一点?
我已经查看了 sklearn指标,以获得类似的解决方案,但还算不上成功。任何帮助将不胜感激。
答案 0 :(得分:4)
是的,您可以通过zipping将两个列表一起Detailed explanantion,然后将输出转换为字典,来创建一个字典,其键为第一列表的元素,值为第二列表的元素。 >
array_1 = [0,0,1,2,3]
array_2 = [4,4,6,8,7]
#Zip the two lists together, and create a dictionary out of the zipped lists
mapping = dict(zip(array_1, array_2))
print(mapping)
输出将为
{0: 4, 1: 6, 2: 8, 3: 7}
请注意,如果array_1
中有重复元素,但array_2
中的相应元素不同,则将在映射中为重复元素选择array_2
的最后一个元素,例如[0,0,1,1]
和[4,5,6,7]
。映射将为{0: 5, 1: 7}
,因为为重复元素5
选择了0
,并且为重复元素7
选择了1