【问题标题】:Testing if a graph is Directed or Undirected Graph from Edgelist file从 Edgelist 文件测试图是有向图还是无向图
【发布时间】:2015-11-10 00:23:44
【问题描述】:

我有一个文本文档,它是一个边缘列表文件。我知道如何读取文件(使用 Canopy Enthought),但我不知道如何获取我想要的图表信息。

主要问题:有没有办法使用 networkx 命令检测这个图(从边缘列表文件创建)是有向的还是无向的?或者只是称重或不称重?

【问题讨论】:

    标签: python networkx canopy


    【解决方案1】:

    我相信在使用边缘列表文件之前,您必须指定图形的类型。因为边缘列表文件只是由包含要连接的节点的元组组成,而没有说明它们是如何连接的。因此,例如,如果您创建一个图形G = nx.Graph(),那么如果文件中的节点对重复,它们之间仍然会有一条边,节点的顺序无关紧要; ((node1,node2) 等价于 (node2,node1))。如果您将图形创建为G = nx.DiGraph(),则节点的顺序会有所不同。此外,在重复的情况下,指定G = nx.MultiGraph() 将存在多个边缘。 G = nx.MultiDiGraph() 在读取边缘列表文件时会有不同的结果。因此,请检查图形类型 documentation 以了解您需要具有哪种类型。

    要检查图表是否定向,您可以使用 nx.is_directed(G),你可以找到文档here

    检查图表是否加权 没有特定类型可以说明图是否具有加权边。但是解决方法是检查边是否包含名为 weight 的属性,如 here 所述。可以通过

    'weight' in G[1][2] # Returns true if an attribute called weight exists in the edge connecting nodes 1 and 2.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多