首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当网络中节点度为n时合并边

当网络中节点度为n时合并边
EN

Stack Overflow用户
提问于 2019-05-30 14:18:35
回答 1查看 1.2K关注 0票数 1

我有一个无向图如下:

代码语言:javascript
运行
复制
import networkx as nx
import matplotlib.pyplot as plt

l = [('1','2'),('2','3'),('3','4'),('3','5'),('1','6'),('6','7'),('6','8'),('9','8')]

G=nx.Graph()
G.add_edges_from(l)
nx.draw_networkx(G,with_labels=True)
plt.show()

当节点满足degree=n(like 2)时,我想结合边。在我的示例中,我需要删除节点128,并连接3-66-9。因此,我预计结果如下。

我该怎么做呢?先谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-30 14:30:27

代码语言:javascript
运行
复制
import networkx as nx
import matplotlib.pyplot as plt

l = [('1','2'),('2','3'),('3','4'),('3','5'),('1','6'),('6','7'),('6','8'),('9','8')]

G=nx.Graph()
G.add_edges_from(l)

# Select all nodes with only 2 neighbors
nodes_to_remove = [n for n in G.nodes if len(list(G.neighbors(n))) == 2]

# For each of those nodes
for node in nodes_to_remove:
    # We add an edge between neighbors (len == 2 so it is correct)
    G.add_edge(*G.neighbors(node))
    # And delete the node
    G.remove_node(node)

nx.draw(G,with_labels=True)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56380053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档