📜  networkx 删除具有度数的节点 - Python (1)

📅  最后修改于: 2023-12-03 15:17:51.540000             🧑  作者: Mango

Networkx删除具有度数的节点 - Python

在使用 Networkx 库进行图形分析时,有时需要删除具有特定度数的节点。以下是在 Python 中使用 Networkx 删除特定节点的方法。

步骤
  1. 导入 Networkx

    import networkx as nx
    
  2. 创建一个图形

    G = nx.Graph()
    
  3. 向图形添加节点和边

    G.add_nodes_from([1, 2, 3, 4, 5])
    G.add_edges_from([(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (4, 5)])
    
  4. 查找具有特定度数的节点

    degree_nodes = [node for node, degree in dict(G.degree()).items()if degree == 2]
    

    该行代码使用 dict(G.degree()) 返回节点及其度数的字典,并使用列表解析式筛选出度为 2 的节点。

  5. 从图形中删除度数为 2 的节点

    G.remove_nodes_from(degree_nodes)
    
完整代码
import networkx as nx

# 创建一个图形
G = nx.Graph()

# 向图形添加节点和边
G.add_nodes_from([1, 2, 3, 4, 5])
G.add_edges_from([(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (4, 5)])

# 查找具有特定度数的节点
degree_nodes = [node for node, degree in dict(G.degree()).items()if degree == 2]

# 从图形中删除度数为 2 的节点
G.remove_nodes_from(degree_nodes)
结论

使用上面的方法,您可以轻松地从 Networkx 图形中删除具有特定度数的节点。