Export edge list to ndarray (numpy)


I would like to create a function which quickly exports a Graph to an edge
list in Python. Bassically the opposite to the `Graph.add_edge_list`
method. My current solution is:

edge_list = [ [int(e.source()), int(e.target())] for e in g.edges()]

As you can imagine this is very slow as the iteration is done in Python and
not C++. Has anyone done this before, or knows how to do this at C++ speed?

Many thanks,

Josh Levy-Kramer
Data Scientist @ Starcount

attachment.html (619 Bytes)


You can use edge_endpoint_property:

The example in that page is getting a numpy array of source vertices
for all edges. It's very fast.

- Ilkka

Another option is to use the adjacency() function that will return a
sparse matrix. You can then get the edges with the nonzero() method:

    a = ajacency(g)
    edges = a.nonzero()