我正在进行一项学校项目,其中我获得了一个无向图G,并应该在其中找到最小生成树。我想使用Scipy中的minimum_spanning_tree (https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.csgraph.minimum_spanning_tree.html)。但是要这样做,我必须提供一个类似数组或稀疏矩阵的2维数据。
x_right=
([[0, 2, 0],
[2, 0, 5],
[0, 5, 0]])
在这个项目中,我需要接收一个邻接列表,它的结构应该像这样:
x_input=
{'A': [('B', 2)],
'B': [('A', 2), ('C', 5)],
'C': [('B', 5)]}
为了尝试一下……我想看看最小生成树是否给出了我想要的结果,所以我手动将x_input更改为x_right运行了它,输出如下:
(0, 1) 2.0
(1, 2) 5.0
这正是我想要的,但我需要以与x_input相同的格式返回输出结果。
我已经尝试了各种方法(其中一个是DictVectorizer - ValueError:无法将字符串转换为浮点数:“B”...就像其他情况一样),但是时间太长了,我认为现在是寻求帮助的时候了。
因此,简而言之,您有关于如何从x_input创建适合最小生成树的矩阵(以及如何再次将结果转换为x_input格式)的建议吗?
谢谢