用Igraph计算图的特征值谱

时间:2014-09-22 18:16:42

标签: python networkx igraph

有没有办法,用Python中的Igraph来计算(最终绘制)图形的特征​​值谱,如文章所述?

http://lthiwww.epfl.ch/~leveque/Projects/barabasi_al.pdf

如果是,需要使用哪些功能?如果没有,有什么好的替代方法?

2 个答案:

答案 0 :(得分:2)

好的,所以我想通过igraph只能做到这一点:

import numpy.linalg
from igraph import *
import random
import numpy as np
import time

nbr_noeuds = 50
dens = .2

p=random.uniform(dens,dens)
G = Graph.Erdos_Renyi(nbr_noeuds, p, directed=False, loops=False)

t0 = time.time()
L = G.laplacian(normalized=True)
e = numpy.linalg.eigvals(L)
print time.time()-t0

计算也快得多,打印输出为0.0009

答案 1 :(得分:1)

它更简单,也许这种方式更快

In [1]: import networkx as nx

In [2]: from numpy.linalg import eigvals

In [3]: %timeit eigvals(nx.normalized_laplacian_matrix(nx.fast_gnp_random_graph(50,0.2)).A)
100 loops, best of 3: 3.13 ms per loop