NetworkX per reti complesse

Jan 05 2023
NetworkX è una libreria Python per la creazione, la manipolazione e lo studio della struttura, delle dinamiche e delle funzioni di reti complesse. Viene utilizzato per analizzare e modellare reti complesse, come reti sociali, biologiche e tecnologiche.
Foto di JK su Unsplash

NetworkX è una libreria Python per la creazione, la manipolazione e lo studio della struttura, delle dinamiche e delle funzioni di reti complesse. Viene utilizzato per analizzare e modellare reti complesse, come reti sociali, biologiche e tecnologiche. NetworkX fornisce strumenti per generare reti casuali e sintetiche, nonché per misurare le proprietà strutturali delle reti e analizzare le dinamiche di sistemi complessi che possono essere rappresentati come reti. NetworkX è utilizzato in una varietà di campi, tra cui sociologia, fisica, informatica e biologia, per studiare sistemi complessi e comprendere i modelli e le strutture sottostanti che ne governano il comportamento.

installazione di networkX

pip install networkx

arcs=[(0,43), (0,56), (1,2), (1,6), (2,5), (2,14), (3,4), (3,17),(4,5), (4,16), (5,15), 
      (5,14), (6,7), (6,14), (7,8), (7,14), (8,9), (8,11), (10,11), (10,24), (11,12), 
      (11,24), (11,25), (12,13), (12,23), (13,14), (13,22), (14,21), (15,21), (15,18), 
      (16,17), (16,18), (17,19), (18,20), (19,20), (20,21), (20,35), (20,36), (21,33), 
      (22,26), (22,27), (23,25), (23,26), (24,25), (25,30), (26,31), (27,32), (27,33)]

import networkx as nx
g = nx.Graph()
g.add_edges_from(arcs)

  • Elenchi di bordi: questo è un elenco di tuple, in cui ogni tupla rappresenta un bordo nel grafico con i suoi due nodi finali.
  • Elenchi di adiacenza: questa è una semplice rappresentazione di un grafo come un elenco di elenchi, in cui ogni elenco interno rappresenta i vicini di un singolo nodo.
  • Strutture dati basate su dizionario: NetworkX può anche gestire grafici rappresentati come dizionari, dove le chiavi sono i nodi ei valori sono i vicini di ogni nodo.
  • Elenchi di nodi: questo è un elenco di nodi nel grafico, senza informazioni sui bordi tra di loro.
  • Matrici di adiacenza: questa è una matrice bidimensionale in cui le righe e le colonne rappresentano i nodi e le celle rappresentano la presenza o l'assenza di un bordo tra i nodi.

g.size()

import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(14,14))
nx.draw(g,with_labels = True, ax = ax, node_size=1500)

      
                

g.add_node(99)
g.add_edge(99,0)