Grafy dwudzielne jako macierze

Analiza sieci w Pythonie – poziom średniozaawansowany

Eric Ma

Data Carpentry instructor and author of nxviz package

Reprezentacja macierzowa

  • Wiersze: węzły jednej partycji
  • Kolumny: węzły drugiej partycji
  • Komórki: 1 jeśli krawędź istnieje, inaczej 0
Analiza sieci w Pythonie – poziom średniozaawansowany

Reprezentacja macierzowa

ch2-2.006.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Przykładowy kod

cust_nodes = [n for n in G.nodes() if G.nodes[n]
                 ['bipartite'] == 'customers']
prod_nodes = [n for n in G.nodes() if G.nodes[n]
                 ['bipartite'] == 'products']

mat = nx.bipartite.biadjacency_matrix(G, row_order=cust_nodes, column_order=prod_nodes)
mat
<3x2 sparse matrix of type '<class 'numpy.int64'>'
with 3 stored elements in Compressed Sparse Row format>
Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.014.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.015.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.016.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.017.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.018.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.019.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.020.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.021.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.022.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.023.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.024.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Rzutowanie macierzowe

  • Rzutowanie obliczalne przez mnożenie macierzy

ch2-2.025.png

Analiza sieci w Pythonie – poziom średniozaawansowany

Mnożenie macierzy w Pythonie

mat @ mat.T
<5x5 sparse matrix of type '<class 'numpy.int64'>'
 with 23 stored elements in Compressed Sparse Row format>
mat.T @ mat
<10x10 sparse matrix of type '<class 'numpy.int64'>'
 with 50 stored elements in Compressed Sparse Column format>
Analiza sieci w Pythonie – poziom średniozaawansowany

Czas na ćwiczenia!

Analiza sieci w Pythonie – poziom średniozaawansowany

Preparing Video For Download...