NetworkX для сложных сетей

Jan 05 2023
NetworkX — это библиотека Python для создания, управления и изучения структуры, динамики и функций сложных сетей. Он используется для анализа и моделирования сложных сетей, таких как социальные, биологические и технологические сети.
Фото JK на Unsplash

NetworkX — это библиотека Python для создания, управления и изучения структуры, динамики и функций сложных сетей. Он используется для анализа и моделирования сложных сетей, таких как социальные, биологические и технологические сети. NetworkX предоставляет инструменты для создания случайных и синтетических сетей, а также для измерения структурных свойств сетей и анализа динамики сложных систем, которые могут быть представлены в виде сетей. NetworkX используется в различных областях, включая социологию, физику, информатику и биологию, для изучения сложных систем и понимания лежащих в их основе закономерностей и структур, управляющих их поведением.

установка 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)

  • Списки ребер: это список кортежей, где каждый кортеж представляет ребро в графе с двумя его конечными узлами.
  • Списки смежности: это простое представление графа в виде списка списков, где каждый внутренний список представляет соседей одного узла.
  • Структуры данных на основе словарей: NetworkX также может обрабатывать графы, представленные в виде словарей, где ключи — это узлы, а значения — соседи каждого узла.
  • Списки узлов: это список узлов в графе без информации о ребрах между ними.
  • Матрицы смежности: это двумерная матрица, в которой строки и столбцы представляют узлы, а ячейки представляют наличие или отсутствие ребра между узлами.

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)