如何解决如何在python中获取最小生成树矩阵
最初,我有2D数组。通过使用此数组,我创建了一个在其边缘具有权重的图形。现在,我正在尝试使用此图制作最小生成树矩阵,但我不能按需制作。我正在使用以下代码制作图形。
G = nx.from_numpy_matrix(ED_Matrix,create_using=nx.DiGraph)
layout = nx.spring_layout(G)
sizes = len(ED_Matrix)
nx.draw(G,layout,with_labels=True,node_size=sizes)
labels = nx.get_edge_attributes(G,"weight")
output = nx.draw_networkx_edge_labels(G,pos=layout,edge_labels=labels)
plt.show()
现在我正在使用MST代码来获取其MST矩阵,但它给出了这样的错误。
from scipy.sparse import csr_matrix
from scipy.sparse.csgraph import minimum_spanning_tree
Tcsr = minimum_spanning_tree(G)
Tcsr.toarray().astype(int)
解决方法
考虑到docs of scipy中的示例,它应该根据G的邻接矩阵而不是G构造。
您可能想在2020-09-09 21:14:20 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP p9sm413427wma.42 - gsmtp
2020-09-09 21:14:20 CLIENT -> SERVER: EHLO 'website'
2020-09-09 21:14:20 SERVER -> CLIENT: 250-smtp.gmail.com at your service,['ip']250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2020-09-09 21:14:20 CLIENT -> SERVER: STARTTLS
2020-09-09 21:14:20 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2020-09-09 21:14:20 CLIENT -> SERVER: EHLO 'website'
2020-09-09 21:14:20 SERVER -> CLIENT: 250-smtp.gmail.com at your service,['ip']250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
的计算(分配)中将G
替换为nx.adjacency_matrix(G)
或csr_matrix(nx.adjacency_matrix(G))
或ED_Matrix
:
Tcsr
Tcsr = minimum_spanning_tree(nx.adjacency_matrix(G)) #or
Tcsr = minimum_spanning_tree(csr_matrix(nx.adjacency_matrix(G))) #or
Tcsr = minimum_spanning_tree(ED_Matrix)
是一个稀疏矩阵,稍后会转换为Tcsr
数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。