NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
Software for 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 90% code coverage
 - Additional benefits from Python include fast prototyping, easy to teach, and multi-platform