Software for complex networks

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


  • Data structures for graphs, digraphs, and multigraphs
  • Many standard graph algorithms
  • Network structure and analysis measures
  • Generators for classic graphs, random graphs, and synthetic networks
  • Nodes can be "anything" (e.g., text, images, XML records)
  • Edges can hold arbitrary data (e.g., weights, time-series)
  • Open source 3-clause BSD license
  • Well tested with over 1800 unit tests and >90% code coverage
  • Additional benefits from Python include fast prototyping, easy to teach, and multi-platform