Kom igångKom igång gratis

Beräkna projektion

Nu är det dags att prova på att beräkna projektionen av en bipartit graf till noderna i en av dess partitioner. Det ger dig träning i att konvertera mellan en bipartit version av en graf och dess unipartita projektioner. Kom ihåg från videon att "projektionen" av en graf mot en av dess partitioner är konnektiviteten hos noderna i den partitionen, betingad på kopplingar till noder i den andra partitionen. Mer konkret kan du tänka på det som "kopplingen mellan kunder baserat på delade köp".

Som en hjälp på traven – här är ett tips om liståtergivningar. Liståtergivningar kan innehålla villkor, så om du vill filtrera en graf efter en viss nodtyp kan du skriva: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Förbered nodelistan people med hjälp av en liståtergivning. Om nyckelordet 'bipartite' för en nod n i G är lika med 'people', ska den noden ingå i nodelistan.
  • Förbered nodelistan clubs genom att iterera över noderna i G inklusive metadata. Observera att du här behöver kontrollera om nyckelordet 'bipartite' i metadataordboken d är lika med 'clubs'. Obs: Det här är bara ett alternativt sätt att skapa nodelistan. Du behöver inte iterera över metadata – du kan följa samma tillvägagångssätt som du använde för att skapa nodelistan people, och helt enkelt kontrollera om värdet är 'clubs' i stället. Vi ber dig använda det här alternativa sättet så att du får öva på båda metoderna.
  • Använd nx.bipartite.projected_graph() för att beräkna projektionerna för people och clubs. Spara resultaten som peopleG respektive clubsG.
    • Funktionen tar två argument: grafen G och nodelistan.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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 = ____
Redigera och kör kod