[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [igraph] Calculation of Coordination Number

**From**: |
Lorenzo Isella |

**Subject**: |
Re: [igraph] Calculation of Coordination Number |

**Date**: |
Sun, 17 Feb 2008 19:13:07 +0100 |

**User-agent**: |
Mozilla-Thunderbird 2.0.0.9 (X11/20080110) |

Hello,
Thanks for your answers and sorry for the late reply.
One final question: since I deal with rather large adjacency matrices, I need
to be efficient when working out the quantities of interest.
For instance, starting from the adjacency matrix, I first work out the
connected components, then I would like to evaluate the mean degree (thanks for
fixing my jargon) within each set of connected components.
What is the most efficient way of doing this, without re-writing the adjacency
matrix for the components I already know to be connected and re-calculating
various properties I know already plus the mean degree?
Cheers
Lorenzo
Message: 15
Date: Wed, 13 Feb 2008 10:47:50 +0100
From: Tamas Nepusz <address@hidden>
Subject: Re: [igraph] Calculation of Coordination Number
To: Help for igraph users <address@hidden>
Message-ID: <address@hidden>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes

> Lorenzo,
> if your graph is `g` then
> degree(g)
> gives the number of direct neighbors of each vertex (or particle).

`
`

`Just to translate it to Python: g.degree() gives the number of direct
``neighbors of each vertex. If your graph is directed, you may only want
``to count only the outgoing or the incoming edges: g.degree(igraph.OUT)
``or g.degree(igraph.IN)
`

> So
> mean(degree(g))

`
`

In Python: sum(g.degree()) / float(g.vcount())

`> (and to turn an adjacency matrix `am` into an igraph object `g` just
``> use "g <- graph.adjacency(am)")
``
`

In Python: g = Graph.Adjacency(matrix)
e.g. g = Graph.Adjacency([[0,1,0],[1,0,1],[0,1,0]])
-- T.