我有一个有3列的文件。第一列和第二列显示边缘,第三列是边缘的符号(权重)。这个文件有450行,所以我想我肯定有450条边。我正在用networkx解析边,代码如下:
G = nx.read_edgelist('myfile.txt', delimiter='\t', nodetype=int, data=(('sign', int),))I使用以下代码打印图形边数:
n1 = nx.number_of_nodes(G)
n2 = nx.number_of_edges(G)
print("nodes: ", n1)
print("edges: ", n2)结果是边数少于450条。为什么我会得到这样的结果?解析有什么问题吗?
发布于 2017-12-10 03:57:06
这很难确定,因为您没有提供Minimal, Complete, and Verifiable example,但我认为最可能的解释是同一条边被添加了两次(可能是在节点顺序改变的情况下)。
默认情况下,networkx使用无向图。因此,u-v边和v-u边是一回事。如果您尝试添加已存在的边,则不会执行任何操作。类似地,不允许从节点到其自身的边。要使用其他图形类型,需要为read_edgelist设置create_using选项。
https://stackoverflow.com/questions/47732375
复制相似问题