Python Graph Library
Question:
I’m writing a python application that will make heavy use of a graph data structure. Nothing horribly complex, but I’m thinking some sort of graph/graph-algorithms library would help me out. I’ve googled around, but I don’t find anything that particularly leaps out at me.
Anyone have any good recommendations?
Answers:
Take a look at this page on implementing graphs in python.
You could also take a look at pygraphlib on sourceforge.
Have you looked at python-graph? I haven’t used it myself, but the project page looks promising.
Also, you might want to take a look at NetworkX
There are two excellent choices:
and
I like NetworkX, but I read good things about igraph as well. I routinely use NetworkX with graphs with 1 million nodes with no problem (it’s about double the overhead of a dict of size V + E)
If you want a feature comparison, see this from the Networkx-discuss list
I would like to plug my own graph python library: graph-tool.
It is very fast, since it is implemented in C++ with the Boost Graph Library, and it contains lots of algorithms and extensive documentation.
I’m having the most luck with pydot. Some of the others are hard to install and configure on different platforms like Win 7.
I second zweiterlinde’s suggestion to use python-graph. I’ve used it as the basis of a graph-based research project that I’m working on. The library is well written, stable, and has a good interface. The authors are also quick to respond to inquiries and reports.
I’m writing a python application that will make heavy use of a graph data structure. Nothing horribly complex, but I’m thinking some sort of graph/graph-algorithms library would help me out. I’ve googled around, but I don’t find anything that particularly leaps out at me.
Anyone have any good recommendations?
Take a look at this page on implementing graphs in python.
You could also take a look at pygraphlib on sourceforge.
Have you looked at python-graph? I haven’t used it myself, but the project page looks promising.
Also, you might want to take a look at NetworkX
There are two excellent choices:
and
I like NetworkX, but I read good things about igraph as well. I routinely use NetworkX with graphs with 1 million nodes with no problem (it’s about double the overhead of a dict of size V + E)
If you want a feature comparison, see this from the Networkx-discuss list
I would like to plug my own graph python library: graph-tool.
It is very fast, since it is implemented in C++ with the Boost Graph Library, and it contains lots of algorithms and extensive documentation.
I’m having the most luck with pydot. Some of the others are hard to install and configure on different platforms like Win 7.
I second zweiterlinde’s suggestion to use python-graph. I’ve used it as the basis of a graph-based research project that I’m working on. The library is well written, stable, and has a good interface. The authors are also quick to respond to inquiries and reports.