Python聚类索引映射算法:处理合并、重命名与忽略场景
聚类标签索引映射算法需求
我正在开发一款用于图像标注的聚类软件,每次迭代中用户可执行两类操作:合并聚类、重命名聚类标签。现在需要实现一套算法,根据旧聚类列表(存储于previous_clusters)和用户输入的新聚类列表,生成旧聚类索引到新索引的映射关系。若用户将某个聚类标记为'Ignore',则该聚类对应的新索引映射为-1,同时该聚类会从后续的聚类列表中移除。
迭代1:将ClassC合并至ClassE
输入
previous_clusters = ["ClassA", "ClassB", "ClassC", "ClassD", "ClassE"] clusters = ["ClassA", "ClassB", "ClassE", "ClassD", "ClassE"]
期望输出
{0:0, 1:1, 2:2, 3:3, 4:2}
迭代2:将ClassA合并至ClassE
输入
previous_clusters = ["ClassA", "ClassB", "ClassE", "ClassD"] clusters = ["ClassE", "ClassB", "ClassE", "ClassD"]
期望输出
{0:0, 1:1, 2:0, 3:2}
迭代3:将ClassB重命名为ClassF
输入
previous_clusters = ["ClassE", "ClassB", "ClassD"] clusters = ["ClassE", "ClassF", "ClassD"]
期望输出
{0:0, 1:1, 2:2}
迭代4:忽略ClassE
输入
previous_clusters = ["ClassE", "ClassF", "ClassD"] clusters = ["Ignore", "ClassF", "ClassD"]
期望输出
{0:-1, 1:0, 2:1}
更新后的旧聚类列表:
previous_clusters = ["ClassF", "ClassD"]
内容的提问来源于stack exchange,提问作者Defqon
相关产品推荐
相关产品推荐

