Differences between revisions 9 and 10
Revision 9 as of 2022-12-03 16:49:05
Size: 4218
Comment: Library NoGraphs added. Disclaimer: I am the author. Somebody else should decide whether the entry is worth it - please check the examples if you do so.
Revision 10 as of 2022-12-03 17:01:14
Size: 4233
Comment: Autolinking error corrected (sorry, I am new to MoinWiki syntax and have not expected autolinking to happen)
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
The following library is based on the concept of [[https://en.wikipedia.org/wiki/implicit_graph|implicit graphs]] and provides algorithm implementations specificly for this context. It is free software. The following Python package is based on the concept of [[https://en.wikipedia.org/wiki/implicit_graph|implicit graphs]] and provides algorithm implementations specifically for this context. It is free software.
Line 17: Line 17:
 * [[https://nographs.readthedocs.io|NoGraphs]] (dist: nographs, mopd: nographs) Graph analysis - the lazy (evaluation) way. NoGraphs simplifies the analysis of graphs that can not or should not be fully computed, stored or adapted, e.g. infinite graphs, large graphs and graphs with expensive computations.  * [[https://nographs.readthedocs.io|NoGraphs]] (dist: nographs, mopd: nographs) Graph analysis - the lazy (evaluation) way. No''''''Graphs simplifies the analysis of graphs that can not or should not be fully computed, stored or adapted, e.g. infinite graphs, large graphs and graphs with expensive computations.

Python Graph Libraries

These libraries are concerned with graphs and networks, not the plotting of numeric data in graphical form.

From the Python Graph API page, plus some others discovered through searching the Internet, quoting the descriptions for each package. Since their names are confusingly similar, we provide the pip installable name (dist) and the importable name (pkg).

  • python-igraph (dist: igraph, mod: igraph) is the set of Python bindings for igraph, a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. It is easily installable from wheels for an extensive array of platforms and it benefits from contributions coming in through users of the C library and R bindings.

  • NetworkX (dist: NetworkX, mod: networkx) is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. It is implemented based on NumPy and SciPy and therefore supports all common platforms.

  • graph-tool (dist: graph-tool, mod: graph_tool) is an efficient package for manipulation and statistical analysis of graphs, based on the C++ Boost Graph Library and parallelized using OpenMP. It is not pip-installable, but available through conda. It is the newest of the bunch, so its author seems to have spent some time to implement a comparative amount of features compared to the others.

  • rustworkX (dist: rustworkx, mod: rustworkx) Rustworkx is a general purpose graph library for Python written in Rust to take advantage of the performance and safety that Rust provides. It is designed to provide a high performance general purpose graph library for any Python application.

All of the above have options for graph generation, IO, algorithms, statistics, and drawing (to image files, Matplotlib, and Cairo). All are free software or open source.

The following Python package is based on the concept of implicit graphs and provides algorithm implementations specifically for this context. It is free software.

  • NoGraphs (dist: nographs, mopd: nographs) Graph analysis - the lazy (evaluation) way. NoGraphs simplifies the analysis of graphs that can not or should not be fully computed, stored or adapted, e.g. infinite graphs, large graphs and graphs with expensive computations.

Unmaintained libraries

The following are marked as or at least seem unmaintained:

  • Another Python Graph Library (dist&mod: apgl) is a simple, fast and easy to use graph library with some machine learning features. (Last commit in 2014, marked unmaintained in 2018, author recommends NetworkX or igraph)

  • py_graph (dist&mod: py_graph) is a native python library for working with graphs. (Page offline as of 2021)

  • python-graph (dist: python-graph-core, mod: pygraph) is a library for working with graphs in Python. This software provides a suitable data structure for representing graphs and a whole set of important algorithms. (Last commit in 2018, no issue page)

Other libraries

  • EasyGraph (dist: Python-EasyGraph, mod: easygraph) is a multi-processing, hybrid (written in Python and C++) graph library for analyzing undirected, directed graphs and multigraphs. It integrates state-of-the-art graph processing approaches, and covers a series of advanced graph processing algorithms include structural hole spanners detection (HIS, MaxD, Common_Greedy, AP_Greedy and HAM), and graph representation learning (deepwalk, node2vec, LINE and SDNE).

Editorial Notes

The above lists should be arranged in ascending alphabetical order - please respect this when adding new entries. When specifying release dates please use the format YYYY-MM-DD.

PythonGraphLibraries (last edited 2022-12-03 17:01:14 by HelmutMelcher)

Unable to edit the page? See the FrontPage for instructions.