假设我有一个像这样的图形:
是否有可能仅计算具有链接的节点的方法?因此,由于有一个没有链接的节点,所以它不是6,而是5。
此外,如果我使用read_edgelist打开图形,然后使用number_of_nodes函数,由于我使用read_edgelist打开了该函数,该函数是否对所有节点进行计数,无论这些节点是否具有链接或仅具有链接/边缘的那些节点?谢谢您的帮助。
答案 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会返回图形中所有节点的数量,不仅是有边的。