Python package for creating and manipulating graphs and networks


Keywords
Networks, Graph, Theory, Mathematics, network, discrete, math, complex-networks, graph-algorithms, graph-analysis, graph-generation, graph-theory, graph-visualization, python, spec-0, spec-1, spec-4
License
BSD-3-Clause
Install
pip install networkx==0.36

Documentation

NetworkX

https://github.com/networkx/networkx/workflows/test/badge.svg?branch=main https://codecov.io/gh/networkx/networkx/branch/main/graph/badge.svg? https://img.shields.io/pypi/v/networkx.svg? https://img.shields.io/pypi/l/networkx.svg? https://img.shields.io/pypi/pyversions/networkx.svg? https://img.shields.io/github/labels/networkx/networkx/good%20first%20issue?color=green&label=contribute

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

Simple example

Find the shortest path between two nodes in an undirected graph:

>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_edge("A", "B", weight=4)
>>> G.add_edge("B", "D", weight=2)
>>> G.add_edge("A", "C", weight=3)
>>> G.add_edge("C", "D", weight=4)
>>> nx.shortest_path(G, "A", "D", weight="weight")
['A', 'B', 'D']

Install

Install the latest released version of NetworkX:

$ pip install networkx

Install with all optional dependencies:

$ pip install networkx[default]

For additional details, please see the installation guide.

Bugs

Please report any bugs that you find here. Or, even better, fork the repository on GitHub and create a pull request (PR). We welcome all changes, big or small, and we will help you make the PR if you are new to git (just ask on the issue and/or see the contributor guide).

License

Released under the 3-Clause BSD license:

Copyright (C) 2004-2024 NetworkX Developers
Aric Hagberg <hagberg@lanl.gov>
Dan Schult <dschult@colgate.edu>
Pieter Swart <swart@lanl.gov>