1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Analiza sieci w Pythonie – poziom średniozaawansowany

Connected

Exercise

Obliczanie rzutu grafu

Czas samodzielnie obliczyć rzut grafu dwudzielnego na węzły jednej z jego partycji. Dzięki temu przećwiczysz konwersję między dwudzielną reprezentacją grafu a jego jednostronnymi rzutami. Przypomnij sobie z wideo, że „rzut" grafu na jedną z jego partycji to łączność węzłów w tej partycji uwarunkowana połączeniami z węzłami drugiej partycji. Mówiąc konkretniej, możesz to rozumieć jako „łączność klientów na podstawie wspólnych zakupów".

Na dobry początek – wskazówka dotycząca wyrażeń listowych. Wyrażenia listowe mogą zawierać warunki, więc jeśli chcesz odfiltrować graf w poszukiwaniu określonego typu węzłów, możesz użyć zapisu: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Instrukcje

100 XP
  • Przygotuj listę węzłów people, używając wyrażenia listowego. Jeśli klucz 'bipartite' węzła n w grafie G jest równy 'people', węzeł ten powinien znaleźć się na liście.
  • Przygotuj listę węzłów clubs, iterując po węzłach grafu G wraz z metadanymi. Zwróć uwagę, że tym razem należy sprawdzić, czy klucz 'bipartite' słownika metadanych d jest równy 'clubs'. Uwaga: to po prostu alternatywny sposób tworzenia listy węzłów. Iterowanie po metadanych nie jest konieczne – możesz zastosować to samo podejście co przy tworzeniu listy people, sprawdzając jedynie wartość 'clubs'. Prosimy o użycie tego drugiego podejścia, żebyś miał(-a) praktykę z oboma metodami.
  • Użyj funkcji nx.bipartite.projected_graph(), aby obliczyć rzuty dla osób i klubów. Wyniki zapisz odpowiednio jako peopleG i clubsG.
    • Funkcja przyjmuje dwa argumenty: graf G oraz listę węzłów.