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
Pokyny k cvičení
- Připrav seznam
peoplepomocí list comprehension. Pokud se klíč'bipartite'uzlunv grafuGrovná'people', zahrň tento uzel do seznamu. - Připrav seznam
clubsiterováním přes uzly grafu G včetně metadat. Tady zkontroluj, zda se klíč'bipartite'slovníku metadatdrovná'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 seznamupeoplea 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 propeopleaclubs. Výsledky ulož jakopeopleGaclubsG.- Tato funkce přijímá dva argumenty: graf
Ga seznam uzlů.
- Tato funkce přijímá dva argumenty: graf
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 = ____