查找具有链接NetworkX

时间:2019-09-27 14:03:07

标签: graph hyperlink nodes networkx

假设我有一个像这样的图形:

Graph

是否有可能仅计算具有链接的节点的方法?因此,由于有一个没有链接的节点,所以它不是6,而是5。

此外,如果我使用read_edgelist打开图形,然后使用number_of_nodes函数,由于我使用read_edgelist打开了该函数,该函数是否对所有节点进行计数,无论这些节点是否具有链接或仅具有链接/边缘的那些节点?谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果要过滤出单个节点,可以遍历图节点并仅保留具有邻居的节点。

使用生成器:

import networkx as nx

G = nx.Graph()
G = nx.fast_gnp_random_graph(40, 0.05, directed=False, seed=1)
print([n for n in G.nodes if len(list(G.neighbors(n))) > 0])

filter函数:

print(list(filter(lambda n: len(list(G.neighbors(n))) > 0, G.nodes)))

两者都将打印相同:

  

[0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38, 39]


如果我正确理解了第二部分,则networkx会返回图形中所有节点的数量,不仅是有边的。