如何在networkx中删除节点?

8 投票
2 回答
12503 浏览
提问于 2025-04-17 04:30

我有一个数据集,我想把它作为图形上传,分析不同时间段之间的关系。

我想删除那些没有连接边的节点,但我不太确定用什么命令来删除这些节点。有没有人知道怎么做?

2 个回答

4

文档里有详细说明。

Graph.remove_node(n): 删除节点 n。

Graph.remove_nodes_from(nodes): 删除多个节点。

举个例子:

In : G=networkx.Graph()

In : G.add_nodes_from([1,2,3])

In : G.nodes()
Out: [1, 2, 3]

In : G.remove_node(2)

In : G.nodes()
Out: [1, 3]
16
import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
G.add_edges_from([('A','B'),('A','C'),('B','D'),('C','D')])
nx.draw(G)
plt.show()

在这里输入图片描述

G.remove_node('B')
nx.draw(G)
plt.show()

在这里输入图片描述

如果你想一次性删除多个节点,可以使用 Graph.remove_nodes_from() 这个方法。

撰写回答