Python Igraph:查找每个顶点的三角形数量

时间:2015-12-11 08:54:55

标签: python igraph

如何在图表中找到顶点的三角形数?

假设我有一张图g。我可以使用这个命令计算每个顶点的度数

g.vs.degree()

它将返回一个数字列表。是否有任何类似的方法来计算将返回列表的三角形的数量?

以前我可以用Gephi计算,但现在我转移到igraph。

更新1

使用cliques,我会得到类似的东西

import igraph as ig
g = ig.Graph.Famous('Krackhardt_Kite')
g.cliques(min=3,max=3)

[(0, 1, 3),
 (0, 2, 3),
 (0, 2, 5),
 (0, 3, 5),
 (1, 3, 4),
 (1, 3, 6),
 (1, 4, 6),
 (2, 3, 5),
 (3, 4, 6),
 (3, 5, 6),
 (5, 6, 7)]

所以三角形的数量应该像这样返回(基于Gephi)

[4,4,3,8,3,5,5,1,0]

igraph还提供这些函数来计算三角形的数量吗?

1 个答案:

答案 0 :(得分:2)

可能效率不高,但这可行:

'config.requestTimestamp'

另一种不使用def triangles(g): cliques = g.cliques(min=3, max=3) result = [0] * g.vcount() for i, j, k in cliques: result[i] += 1 result[j] += 1 result[k] += 1 return result 的变体:

cliques()

我还没有完成任何基准测试,因此这个基准测试可能比前一个更快或更慢 - 我不知道。