Statistics
| Branch: | Revision:

## iof-tools / networkxMiCe / networkx-master / networkx / algorithms / centrality / degree_alg.py @ 5cef0f13

 1 ```# Copyright (C) 2004-2019 by ``` ```# Aric Hagberg ``` ```# Dan Schult ``` ```# Pieter Swart ``` ```# All rights reserved. ``` ```# BSD license. ``` ```# ``` ```# Authors: Aric Hagberg (hagberg@lanl.gov) ``` ```# Pieter Swart (swart@lanl.gov) ``` ```# Sasha Gutfraind (ag362@cornell.edu) ``` ```"""Degree centrality measures.""" ``` ```import networkx as nx ``` ```from networkx.utils.decorators import not_implemented_for ``` ```__all__ = ['degree_centrality', ``` ``` 'in_degree_centrality', ``` ``` 'out_degree_centrality'] ``` ```def degree_centrality(G): ``` ``` """Compute the degree centrality for nodes. ``` ``` ``` ``` The degree centrality for a node v is the fraction of nodes it ``` ``` is connected to. ``` ``` ``` ``` Parameters ``` ``` ---------- ``` ``` G : graph ``` ``` A networkx graph ``` ``` ``` ``` Returns ``` ``` ------- ``` ``` nodes : dictionary ``` ``` Dictionary of nodes with degree centrality as the value. ``` ``` ``` ``` See Also ``` ``` -------- ``` ``` betweenness_centrality, load_centrality, eigenvector_centrality ``` ``` ``` ``` Notes ``` ``` ----- ``` ``` The degree centrality values are normalized by dividing by the maximum ``` ``` possible degree in a simple graph n-1 where n is the number of nodes in G. ``` ``` ``` ``` For multigraphs or graphs with self loops the maximum degree might ``` ``` be higher than n-1 and values of degree centrality greater than 1 ``` ``` are possible. ``` ``` """ ``` ``` if len(G) <= 1: ``` ``` return {n: 1 for n in G} ``` ``` s = 1.0 / (len(G) - 1.0) ``` ``` centrality = {n: d * s for n, d in G.degree()} ``` ``` return centrality ``` ```@not_implemented_for('undirected') ``` ```def in_degree_centrality(G): ``` ``` """Compute the in-degree centrality for nodes. ``` ``` ``` ``` The in-degree centrality for a node v is the fraction of nodes its ``` ``` incoming edges are connected to. ``` ``` ``` ``` Parameters ``` ``` ---------- ``` ``` G : graph ``` ``` A NetworkX graph ``` ``` ``` ``` Returns ``` ``` ------- ``` ``` nodes : dictionary ``` ``` Dictionary of nodes with in-degree centrality as values. ``` ``` ``` ``` Raises ``` ``` ------ ``` ``` NetworkXNotImplemented: ``` ``` If G is undirected. ``` ``` ``` ``` See Also ``` ``` -------- ``` ``` degree_centrality, out_degree_centrality ``` ``` ``` ``` Notes ``` ``` ----- ``` ``` The degree centrality values are normalized by dividing by the maximum ``` ``` possible degree in a simple graph n-1 where n is the number of nodes in G. ``` ``` ``` ``` For multigraphs or graphs with self loops the maximum degree might ``` ``` be higher than n-1 and values of degree centrality greater than 1 ``` ``` are possible. ``` ``` """ ``` ``` if len(G) <= 1: ``` ``` return {n: 1 for n in G} ``` ``` s = 1.0 / (len(G) - 1.0) ``` ``` centrality = {n: d * s for n, d in G.in_degree()} ``` ``` return centrality ``` ```@not_implemented_for('undirected') ``` ```def out_degree_centrality(G): ``` ``` """Compute the out-degree centrality for nodes. ``` ``` ``` ``` The out-degree centrality for a node v is the fraction of nodes its ``` ``` outgoing edges are connected to. ``` ``` ``` ``` Parameters ``` ``` ---------- ``` ``` G : graph ``` ``` A NetworkX graph ``` ``` ``` ``` Returns ``` ``` ------- ``` ``` nodes : dictionary ``` ``` Dictionary of nodes with out-degree centrality as values. ``` ``` ``` ``` Raises ``` ``` ------ ``` ``` NetworkXNotImplemented: ``` ``` If G is undirected. ``` ``` ``` ``` See Also ``` ``` -------- ``` ``` degree_centrality, in_degree_centrality ``` ``` ``` ``` Notes ``` ``` ----- ``` ``` The degree centrality values are normalized by dividing by the maximum ``` ``` possible degree in a simple graph n-1 where n is the number of nodes in G. ``` ``` ``` ``` For multigraphs or graphs with self loops the maximum degree might ``` ``` be higher than n-1 and values of degree centrality greater than 1 ``` ``` are possible. ``` ``` """ ``` ``` if len(G) <= 1: ``` ``` return {n: 1 for n in G} ``` ``` s = 1.0 / (len(G) - 1.0) ``` ``` centrality = {n: d * s for n, d in G.out_degree()} ``` ``` return centrality ```