networkx python, directed/undirected 图,不一致的节点和边?

networkx python, directed/undirected graph, inconsistent nodes and edges?

我已经创建了一个图表,我在上面 运行 pagerank。我已经测试了有向图和无向图,但我很难理解我所看到的。

我有一段代码如下所示:

G= nx.DiGraph() #option 1
#G= nx.Graph() #option 2
[inside a for loop]
   G.add_edge(node, another_node)
print("Graph size {} {}".format(len(G.nodes()), len(G.edges())))

[then code to run pagerank...]

如您所见,我同时尝试了有向图 (DiGraph) 和无向图 (Graph)。对于两者,我都经历了相同的循环,在同一组(节点,another_node)对上调用 'add_edge' 相同的次数。

然后我在结果图上打印节点数和边数。然而,这条线让我感到困惑。因为对于 DiGraph 和 Graph,我看到不同的输出:

当使用选项1时,有10107个节点和1350222条边。 当使用选项2时,有10107个节点和1268064条边。

我知道理解一致性。这是正常现象还是有什么问题?

谢谢

无向图中的边没有方向。从 A 到 B 和从 B 到 A 的边被认为是重复的。 add_edge() 默默地忽略重复项。这就是为什么你的无向图会有一条边 (A,B) 或 (B,A) 而有向图会有两条边 (A,B) 和 (B,A)。