average_shortest_path_length#
- average_shortest_path_length(G, weight=None, method=None)[source]#
Returns the average shortest path length.
The average shortest path length is
\[a =\sum_{s,t \in V} \frac{d(s, t)}{n(n-1)}\]where
V
is the set of nodes inG
,d(s, t)
is the shortest path froms
tot
, andn
is the number of nodes inG
.- Parameters:
- GNetworkX graph
- weightNone, string or function, optional (default = None)
If None, every edge has weight/distance/cost 1. If a string, use this edge attribute as the edge weight. Any edge attribute not present defaults to 1. If this is a function, the weight of an edge is the value returned by the function. The function must accept exactly three positional arguments: the two endpoints of an edge and the dictionary of edge attributes for that edge. The function must return a number.
- methodstring, optional (default = ‘unweighted’ or ‘djikstra’)
The algorithm to use to compute the path lengths. Supported options are ‘unweighted’, ‘dijkstra’, ‘bellman-ford’, ‘floyd-warshall’ and ‘floyd-warshall-numpy’. Other method values produce a ValueError. The default method is ‘unweighted’ if
weight
is None, otherwise the default method is ‘dijkstra’.
- Raises:
- NetworkXPointlessConcept
If
G
is the null graph (that is, the graph on zero nodes).- NetworkXError
If
G
is not connected (or not weakly connected, in the case of a directed graph).- ValueError
If
method
is not among the supported options.
Examples
>>> G = nx.path_graph(5) >>> nx.average_shortest_path_length(G) 2.0
For disconnected graphs, you can compute the average shortest path length for each component
>>> G = nx.Graph([(1, 2), (3, 4)]) >>> for C in (G.subgraph(c).copy() for c in nx.connected_components(G)): ... print(nx.average_shortest_path_length(C)) 1.0 1.0