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

Connected

Exercise

Wspólne członkostwo: transpozycja

Jak zapewne zauważono, podczas przejścia do reprezentacji rzadkiej macierzy metadane grafu zostają utracone. Teraz nauczysz się, jak je odtworzyć, by dowiedzieć się więcej o wspólnym członkostwie.

user_matrix obliczona w poprzednim ćwiczeniu została wstępnie załadowana do twojego środowiska.

Przydatna okaże się tutaj funkcja np.where(). Działa ona następująco: dla tablicy, powiedzmy a = [1, 5, 9, 5], jeśli chcesz uzyskać indeksy, gdzie wartość wynosi 5, możesz użyć idxs = np.where(a == 5). Zwraca ona tablicę w krotce: (array([1, 3]),). Aby uzyskać dostęp do tych indeksów, należy odwołać się do krotki za pomocą idxs[0].

Instrukcje

100 XP
  • Znajdź nazwiska osób, które należały do największej liczby klubów.
    • W tym celu oblicz diag, używając metody .diagonal() na user_matrix.
    • Następnie, korzystając z np.where(), wybierz indeksy tam, gdzie diag jest równe diag.max(). Wynikiem jest krotka – upewnij się, że odwołujesz się do odpowiednich indeksów, indeksując krotkę za pomocą [0].
    • Iteruj po indices i wypisz każdy indeks i z people_nodes, korzystając z dostarczonej funkcji print().
  • Ustaw przekątną na zero i przekształć macierz do formatu „coordinate matrix format". Ten fragment kodu jest już dostarczony w odpowiedzi.
  • Znajdź pary użytkowników, którzy należeli wspólnie do największej liczby klubów.
    • Używając np.where(), uzyskaj indeksy, gdzie users_coo.data jest równe users_coo.data.max().
    • Iteruj po indices2 i wypisz każdy indeks idx z users_coo.row oraz users_coo.col należących do people_nodes.