πŸ“Š Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python: просто ΠΈ понятно

Для построСния Π³Ρ€Π°Ρ„Π° ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ смСТности
adjacency_matrix = np.array([[0, 1, 0, 1],
                             [1, 0, 1, 0],
                             [0, 1, 0, 1],
                             [1, 0, 1, 0]])

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³Ρ€Π°Ρ„ ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности
graph = nx.from_numpy_array(adjacency_matrix)

# РисуСм Π³Ρ€Π°Ρ„
nx.draw(graph, with_labels=True)
plt.show()
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ NumPy для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ NetworkX для создания Π³Ρ€Π°Ρ„Π° ΠΈΠ· этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Matplotlib для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„Π°. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΊΠΎΠ΄Π°.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python - это полСзная Π·Π°Π΄Π°Ρ‡Π°, которая позволяСт Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ элСмСнтами сСти ΠΈΠ»ΠΈ систСмы. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности с использованиСм языка программирования Python.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности?

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности - это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой Π³Ρ€Π°Ρ„, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ. Если связь сущСствуСт, элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС - 0.

Π¨Π°Π³ΠΈ построСния Π³Ρ€Π°Ρ„Π° ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python

  1. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

import networkx as nx
import matplotlib.pyplot as plt

    
  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„:

def build_graph(adj_matrix):
    G = nx.from_numpy_matrix(adj_matrix)
    return G

    

Π’ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NetworkX ΠΈ Matplotlib для создания Π³Ρ€Π°Ρ„Π° ΠΈ Π΅Π³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ смСТности:

adj_matrix = [[0, 1, 1, 0],
              [1, 0, 0, 1],
              [1, 0, 0, 0],
              [0, 1, 0, 0]]

    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ смСТности для Π³Ρ€Π°Ρ„Π° с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ. Π—Π΄Π΅ΡΡŒ 1 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ, Π° 0 - отсутствиС связи.

  1. Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для построСния Π³Ρ€Π°Ρ„Π°:

graph = build_graph(adj_matrix)

    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„, построСнный Π½Π° основС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Matplotlib для Π΅Π³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

  1. Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π³Ρ€Π°Ρ„:

nx.draw(graph, with_labels=True)
plt.show()

    

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих Π΄Π²ΡƒΡ… строк ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python. ΠœΡ‹ использовали Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NetworkX ΠΈ Matplotlib для создания ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„Π°.

НадСюсь, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π³Ρ€Π°Ρ„Π°ΠΌΠΈ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ смСТности Π² Python.

Π£Π΄Π°Ρ‡ΠΈ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ смСТности?

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ВСория Π³Ρ€Π°Ρ„ΠΎΠ². Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π°: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности. Π¦Π΅Π½Ρ‚Ρ€ ΠΎΠ½Π»Π°ΠΉΠ½-обучСния «Ѐоксфорд»

Как Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ инцидСнтности

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ влоТСнности списков Π² Python

πŸ“Š Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ смСТности Π² Python: просто ΠΈ понятно

Как Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ список Π½Π° элСмСнты Python: простоС руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ объяснСниями

πŸ” Как пСрСвСсти json Π² Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

πŸ•“ Бколько Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ с нуля? πŸ“š