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

Roh*_*tra 3 python arrays associative-array python-3.x

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

考虑两个标签数组:

array1 = [0,0,1,2,3]
array2 = [4,4,6,8,7]
Run Code Online (Sandbox Code Playgroud)

从视觉上看,这些看起来是一样的,但对于更大的标签集,我想找到一个像{0:4,1:6,2:8,3:7}.

Python 有什么方法可以做到这一点吗?

我已经查看了类似解决方案的sklearn 指标,但还没有运气。任何帮助,将不胜感激。

Dev*_*ngh 6

是的,您可以通过将两个列表压缩在一起并将输出转换为字典来创建一个字典,其中键作为第一个列表的元素,值作为第二个列表的元素

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)
Run Code Online (Sandbox Code Playgroud)

输出将是

{0: 4, 1: 6, 2: 8, 3: 7}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您有重复的元素,array_1但对应的元素array_2不同,则 的最后一个元素array_2将在重复元素的映射中选择,例如 for[0,0,1,1][4,5,6,7]。映射将是{0: 5, 1: 7},因为5为重复元素选择07为重复元素选择1