average_neighbor_degree¶
- average_neighbor_degree(G, source='out', target='out', nodes=None, weight=None)[source]¶
Returns the average degree of the neighborhood of each node.
The average neighborhood degree of a node
i
is\[k_{nn,i} = \frac{1}{|N(i)|} \sum_{j \in N(i)} k_j\]where
N(i)
are the neighbors of nodei
andk_j
is the degree of nodej
which belongs toN(i)
. For weighted graphs, an analogous measure can be defined [1],\[k_{nn,i}^{w} = \frac{1}{s_i} \sum_{j \in N(i)} w_{ij} k_j\]where
s_i
is the weighted degree of nodei
,w_{ij}
is the weight of the edge that linksi
andj
andN(i)
are the neighbors of nodei
.- Parameters
- GNetworkX graph
- sourcestring (“in”|”out”|”in+out”)
Directed graphs only. Use “in”- or “out”-degree for source node.
- targetstring (“in”|”out”|”in+out”)
Directed graphs only. Use “in”- or “out”-degree for target node.
- nodeslist or iterable, optional
Compute neighbor degree for specified nodes. The default is all nodes in the graph.
- weightstring or None, optional (default=None)
The edge attribute that holds the numerical value used as a weight. If None, then each edge has weight 1.
- Returns
- d: dict
A dictionary keyed by node with average neighbors degree value.
- Raises
- NetworkXError
If either
source
ortarget
are not one of ‘in’, ‘out’, or ‘in+out’. If eithersource
ortarget
is passed for an undirected graph.
See also
Notes
For directed graphs you can also specify in-degree or out-degree by passing keyword arguments.
References
- 1
A. Barrat, M. Barthélemy, R. Pastor-Satorras, and A. Vespignani, “The architecture of complex weighted networks”. PNAS 101 (11): 3747–3752 (2004).
Examples
>>> G = nx.path_graph(4) >>> G.edges[0, 1]["weight"] = 5 >>> G.edges[2, 3]["weight"] = 3
>>> nx.average_neighbor_degree(G) {0: 2.0, 1: 1.5, 2: 1.5, 3: 2.0} >>> nx.average_neighbor_degree(G, weight="weight") {0: 2.0, 1: 1.1666666666666667, 2: 1.25, 3: 2.0}
>>> G = nx.DiGraph() >>> nx.add_path(G, [0, 1, 2, 3]) >>> nx.average_neighbor_degree(G, source="in", target="in") {0: 0.0, 1: 1.0, 2: 1.0, 3: 0.0}
>>> nx.average_neighbor_degree(G, source="out", target="out") {0: 1.0, 1: 1.0, 2: 0.0, 3: 0.0}