Začněte nyníZačněte zdarma

Výpočet projekce

Teď přichází čas vyzkoušet si výpočet projekce bipartitního grafu na uzly jedné z jeho částí. Procvičíš si tak převod mezi bipartitní podobou grafu a jeho unipartitními projekcemi. Jak si pamatuješ z videa, „projekce" grafu na jednu z jeho částí vyjadřuje propojenost uzlů v dané části podmíněnou jejich spojením s uzly ve druhé části. Konkrétně si to můžeš představit jako „propojenost zákazníků na základě sdílených nákupů".

Na úvod malá nápověda k list comprehensions: lze do nich zahrnout podmínky. Pokud chceš filtrovat graf podle určitého typu uzlu, použij: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Toto cvičení je součástí kurzu

Intermediate Network Analysis in Python

Zobrazit kurz

Pokyny k cvičení

  • Připrav seznam people pomocí list comprehension. Pokud se klíč 'bipartite' uzlu n v grafu G rovná 'people', zahrň tento uzel do seznamu.
  • Připrav seznam clubs iterováním přes uzly grafu G včetně metadat. Tady zkontroluj, zda se klíč 'bipartite' slovníku metadat d rovná 'clubs'. Poznámka: Jde jen o alternativní způsob vytvoření seznamu. Iterovat přes metadata nemusíš — můžeš použít stejný postup jako u seznamu people a jednoduše hledat 'clubs'. Žádáme tě o tento přístup, abys měl/a praxi s oběma metodami.
  • Pomocí nx.bipartite.projected_graph() vypočítej projekce pro people a clubs. Výsledky ulož jako peopleG a clubsG.
    • Tato funkce přijímá dva argumenty: graf G a seznam uzlů.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Prepare the nodelists needed for computing projections: people, clubs
# This exercise shows you two ways to do it, one with `data=True` and one without.
people = [n for n in G.nodes() if G.nodes[____]['____'] == '____']
clubs = [n for n, d in G.nodes(data=True) if d['____'] == '____']

# Compute the people and clubs projections: peopleG, clubsG
peopleG = ____
clubsG = ____
Upravit a spustit kód