Python 2.7 fast_community上的python igraph错误。c:553

Python 2.7 fast_community上的python igraph错误。c:553,python-2.7,igraph,Python 2.7,Igraph,首先,感谢您的阅读和可能的回复 现在,问题是: 我使用的是python 2.7,当我尝试使用Fast贪婪算法在我的图中查找社区时,出现了以下错误: --------------------------------------------------------------------------- InternalError Traceback (most recent call last) <ipython-input-18

首先,感谢您的阅读和可能的回复

现在,问题是: 我使用的是python 2.7,当我尝试使用Fast贪婪算法在我的图中查找社区时,出现了以下错误:

    ---------------------------------------------------------------------------
InternalError                             Traceback (most recent call last)
<ipython-input-180-3b8456851658> in <module>()
----> 1 dendrogram = g_summary.community_fastgreedy(weights=edge_frequency.values())

/usr/local/lib/python2.7/site-packages/igraph/__init__.pyc in community_fastgreedy(self, weights)
    959           in very large networks. Phys Rev E 70, 066111 (2004).
    960         """
--> 961         merges, qs = GraphBase.community_fastgreedy(self, weights)
    962 
    963         # qs may be shorter than |V|-1 if we are left with a few separated

InternalError: Error at fast_community.c:553: fast-greedy community finding works only on graphs without multiple edges, Invalid value
这就是引发错误的原因:

dendrogram = g.community_fastgreedy(weights=g.es['width'])

我做错了什么?

您的图形包含多条边(即,同一对节点之间有多条边)。快速贪婪社区检测在这样的图上不起作用;必须使用
g.simplify()
将多条边折叠为一条边

您似乎还试图根据同一对顶点之间的边数设置边的“宽度”。不必先构造
唯一边
,然后再构造
唯一边
频率,您只需执行以下操作:

g = Graph(edges, directed=False)
g.es["width"] = 1
g.simplify(combine_edges={ "width": "sum" })

这将首先创建一个具有多条边的图形,然后为每条边指定1的宽度,最后将多条边折叠为单个边,同时将其宽度相加。

您的图形包含多条边(即,同一对节点之间有多条边)。快速贪婪社区检测在这样的图上不起作用;必须使用
g.simplify()
将多条边折叠为一条边

您似乎还试图根据同一对顶点之间的边数设置边的“宽度”。不必先构造
唯一边
,然后再构造
唯一边
频率,您只需执行以下操作:

g = Graph(edges, directed=False)
g.es["width"] = 1
g.simplify(combine_edges={ "width": "sum" })

这将首先创建一个具有多条边的图形,然后为每条边指定1的宽度,最后将多条边折叠为单个边,同时将其宽度相加。

您的图形包含多条边(即,同一对节点之间有多条边)。快速贪婪社区检测在这样的图上不起作用;必须使用
g.simplify()
将多条边折叠为一条边

您似乎还试图根据同一对顶点之间的边数设置边的“宽度”。不必先构造
唯一边
,然后再构造
唯一边
频率,您只需执行以下操作:

g = Graph(edges, directed=False)
g.es["width"] = 1
g.simplify(combine_edges={ "width": "sum" })

这将首先创建一个具有多条边的图形,然后为每条边指定1的宽度,最后将多条边折叠为单个边,同时将其宽度相加。

您的图形包含多条边(即,同一对节点之间有多条边)。快速贪婪社区检测在这样的图上不起作用;必须使用
g.simplify()
将多条边折叠为一条边

您似乎还试图根据同一对顶点之间的边数设置边的“宽度”。不必先构造
唯一边
,然后再构造
唯一边
频率,您只需执行以下操作:

g = Graph(edges, directed=False)
g.es["width"] = 1
g.simplify(combine_edges={ "width": "sum" })
这将首先创建一个具有多条边的图形,然后为每条边指定一个1的宽度,最后将多条边折叠为一条边,同时将其宽度相加