Export edge list to ndarray (numpy)

Hi,

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)

Hi,

You can use edge_endpoint_property:
https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.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()

Best,
Tiago