创建两个数组中元素的映射

时间:2019-06-13 06:11:04

标签: python arrays python-3.x associative-array

我有两个数组,它们是聚类算法的输出。是否有可能自动找到关联映射

考虑两个标签数组:

array1 = [0,0,1,2,3]
array2 = [4,4,6,8,7]

从外观上看,它们看起来是相同的,但是对于更大的标签集,我想找到一个像{0:4,1:6,2:8,3:7}这样的映射。

Python是否有任何方法可以做到这一点?

我已经查看了 sklearn指标,以获得类似的解决方案,但还算不上成功。任何帮助将不胜感激。

1 个答案:

答案 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