微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 networkx 图中的节点设置为受感染和未受感染

如何解决将 networkx 图中的节点设置为受感染和未受感染

我有空手道俱乐部图,我希望将其中的一些随机节点确定为受感染的节点,而其余的则未受感染。我尝试使用:

G = nx.karate_club_graph()
#pos = nx.spectral_layout(G)
bb = tuple(nx.betweenness_centrality(G))
nx.set_node_attributes(G,'betweenness',bb)
G.nodes[1]['betweenness']

举个例子看看能不能用。尽管它在最后一行返回了“介数”的关键错误。有什么方法可以手动或随机选择图中的几个节点,并给它们一个被感染的节点,而其余的都是 0。或者有没有更好的方法在这个图中设置感染?

解决方法

只需按照 set_node_attributes 的正确函数调用

正确的语法:

set_node_attributes(G,values,name=None)

所以你的变量 bb 将出现在名称 betweenness

之前

代码:

import networkx as nx
G = nx.karate_club_graph()
bb = tuple(nx.betweenness_centrality(G))
# changed
nx.set_node_attributes(G,bb,'betweenness')
print(G.nodes[1])

结果:

enter image description here

此外,如果您删除元组部分,您将获得分数输出:

import networkx as nx
G = nx.karate_club_graph()
bb = tuple(nx.betweenness_centrality(G))
# changed
bb = nx.betweenness_centrality(G)
nx.set_node_attributes(G,'betweenness')
print(G.nodes[1])

结果:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。