ÎncepețiÎncepe gratuit

Calcularea proiecției

Acum este momentul să exersezi calcularea proiecției unui graf bipartit pe nodurile uneia dintre partițiile sale. Aceasta este o bună ocazie de a te familiariza cu conversia dintre versiunea bipartită a unui graf și proiecțiile sale unipartite. Reține din videoclip că „proiecția" unui graf pe una dintre partiții reprezintă conectivitatea nodurilor din acea partiție, condiționată de conexiunile cu nodurile din cealaltă partiție. Concret, poți să te gândești la „conectivitatea clienților pe baza achizițiilor comune".

Pentru a te ajuta să începi, iată un indiciu despre listele comprehension. Acestea pot include condiții, astfel că, dacă vrei să filtrezi un graf după un anumit tip de nod, poți face: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Acest exercițiu face parte din cursul

Analiză intermediară a rețelelor în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Pregătește lista de noduri people folosind o listă comprehension. Dacă valoarea cheii 'bipartite' a unui nod n din G este egală cu 'people', atunci acel nod trebuie inclus în listă.
  • Pregătește lista de noduri clubs iterând peste nodurile lui G, inclusiv metadatele. Aici trebuie să verifici dacă valoarea cheii 'bipartite' din dicționarul de metadate d este egală cu 'clubs'. Notă: Aceasta este pur și simplu o altă modalitate de a crea lista de noduri. Nu trebuie să iterezi peste metadate — poți urma aceeași abordare folosită pentru lista people, verificând 'clubs' în loc de 'people'. Îți cerem să folosești această variantă alternativă pentru a exersa ambele metode.
  • Folosește nx.bipartite.projected_graph() pentru a calcula proiecțiile pentru people și clubs. Stochează rezultatele în variabilele peopleG și clubsG.
    • Această funcție primește doi argumenți: graful G și lista de noduri.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 = ____
Editează și rulează codul