[graph-tool] Two ways of calculating the degree sequence

Tiago de Paula Peixoto tiago at skewed.de
Mon Feb 20 19:51:39 CET 2017

On 13.02.2017 00:10, gogurt wrote:
> So I'm trying to calculate the degree sequence of G, an undirected, connected
> simple graph. As far as I see it, there are two ways to do this. Iterate
> over all the vertices, or sum the rows of the adjacency matrix. So:
> def degree_sequence1(G):
>     degs = []
>     for v in G.vertices():
>         degs.append(v.out_degree() + v.in_degree())
>     degs.sort()
>     return degs
> def degree_sequence2(G):
>     mat = gt.adjacency(G)
>     degs = np.squeeze(np.asarray(mat.sum(axis=0)))
>     degs.sort()
>     return degs
> The first way definitely works. But when I try to use the second method, I
> find that even if I run this code on a connected network I get zeroes in my
> degree sequence. Which shouldn't be possible if the graph is connected. So I
> know that I'm understanding something wrong here.
> Can somebody point out where I went wrong here?

I tried the second function with a connected graph, and I did not see any
zeros. Maybe it would help if you would provide a small but _complete_
example that shows the problem.


Tiago de Paula Peixoto <tiago at skewed.de>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.skewed.de/pipermail/graph-tool/attachments/20170220/78a46835/attachment.asc>

More information about the graph-tool mailing list