Return to Snippet

Revision: 9733
at February 12, 2009 04:36 by ntamas


Updated Code
def assortativity(graph, degrees=None):
    if degrees is None: degrees = graph.degree()
    degrees_sq = [deg**2 for deg in degrees]

    m = float(graph.ecount())
    num1, num2, den1 = 0, 0, 0
    for source, target in graph.get_edgelist():
        num1 += degrees[source] * degrees[target]
        num2 += degrees[source] + degrees[target]
        den1 += degrees_sq[source] + degrees_sq[target]

    num1 /= m
    den1 /= 2*m
    num2 = (num2 / (2*m)) ** 2

    return (num1 - num2) / (den1 - num2)

Revision: 9732
at November 19, 2008 05:54 by ntamas


Initial Code
def assortativity(graph, degrees=None):
    if degrees is None: degrees = graph.degree()

    m = g.ecount()
    num1, num2, den1 = 0., 0., 0.
    for source, target in g.get_edgelist():
        num1 += degrees[source] * degrees[target]
        num2 += degrees[source] + degrees[target]
        den1 += degrees[source]**2 + degrees[target]**2

    num1 /= m
    den1 /= 2*m
    num2 = (num2 / (2*m)) ** 2

    return (num1 - num2) / (den1 - num2)

Initial URL


Initial Description
Also works with weighted degree or any other property you might think of.

Initial Title
Calculating assortativity coefficient in igraph

Initial Tags
python

Initial Language
Python