Exploring Network Structure, Dynamics, and Function using NetworkX
Aric A. Hagberg
hagberg@lanl.gov -
Los Alamos National Laboratory, Los Alamos, New Mexico USA
Daniel A. Schult
dschult@colgate.edu -
Colgate University, Hamilton, NY USA
Pieter J. Swart
swart@lanl.gov -
Los Alamos National Laboratory, Los Alamos, New Mexico USA
NetworkX is a Python language package for exploration and analysis of
networks and network algorithms. The core package provides data
structures for representing many types of networks, or graphs,
including simple graphs, directed graphs, and graphs with parallel
edges and self-loops. The nodes in NetworkX graphs can be any
(hashable) Python object and edges can contain arbitrary data; this
flexibility makes NetworkX ideal for representing networks found in
many different scientific fields.
In addition to the basic data structures many graph algorithms are
implemented for calculating network properties and structure measures:
shortest paths, betweenness centrality, clustering, and degree
distribution and many more. NetworkX can read and write various graph
formats for easy exchange with existing data, and provides generators
for many classic graphs and popular graph models, such as the
Erdos-Renyi, Small World, and Barabasi-Albert models.
The ease-of-use and flexibility of the Python programming language
together with connection to the SciPy tools make NetworkX a powerful
tool for scientific computations. We discuss some of our recent work
studying synchronization of coupled oscillators to demonstrate how
NetworkX enables research in the field of computational networks.
Citation
A Hagberg, D Schult, P Swart, Exploring Network Structure, Dynamics, and Function using NetworkX in Proceedings of the 7th Python in Science conference (SciPy 2008), G Varoquaux, T Vaught, J Millman (Eds.), pp. 11-15
BibTeX entryFull text PDF
Copyright
The content of the articles of the Proceedings of the Python in
Science Conference is copyrighted and owned by their original
authors.
Terms of use For republication or other use of the material published, please contact the copyright owners to obtain permission.
Terms of use For republication or other use of the material published, please contact the copyright owners to obtain permission.