networkx python,有向/无向图,不一致的节点和边?

时间:2017-04-05 19:54:44

标签: python networkx

我创建了一个运行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)。对于两者,我通过相同的循环,在同一组(node,another_node)对上调用'add_edge'相同的次数。

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

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

我知道了解一致性。这是正常还是可能出错?

由于

1 个答案:

答案 0 :(得分:1)

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