Book Image

Network Science with Python and NetworkX Quick Start Guide

By : Edward L. Platt
Book Image

Network Science with Python and NetworkX Quick Start Guide

By: Edward L. Platt

Overview of this book

NetworkX is a leading free and open source package used for network science with the Python programming language. NetworkX can track properties of individuals and relationships, find communities, analyze resilience, detect key network locations, and perform a wide range of important tasks. With the recent release of version 2, NetworkX has been updated to be more powerful and easy to use. If you’re a data scientist, engineer, or computational social scientist, this book will guide you in using the Python programming language to gain insights into real-world networks. Starting with the fundamentals, you’ll be introduced to the core concepts of network science, along with examples that use real-world data and Python code. This book will introduce you to theoretical concepts such as scale-free and small-world networks, centrality measures, and agent-based modeling. You’ll also be able to look for scale-free networks in real data and visualize a network using circular, directed, and shell layouts. By the end of this book, you’ll be able to choose appropriate network representations, use NetworkX to build and characterize networks, and uncover insights while working with real-world systems.
Table of Contents (15 chapters)

Diameter and mean shortest path

The size of a network can be quantified in several ways. In Chapter 5, The Small Scale – Nodes and Centrality, the distance between two nodes was defined as the length of the shortest path between them. With a way to measure distance, it becomes possible to define size based on that distance.

NetworkX provides several convenient functions for finding distances and shortest paths. The shortest paths between two particular nodes can be found using the all_shortest_paths() function:

list(nx.all_shortest_paths(G_karate, mr_hi, john_a))
[[0, 8, 33], [0, 13, 33], [0, 19, 33], [0, 31, 33]]

If you only need to know the distance, the shortest_path_length() function will provide that:

nx.shortest_path_length(G_karate, mr_hi, john_a)
2

On the other hand, the distance between all node pairs can be found using the shortest_path_length() function. This function...