ÎncepețiÎncepe gratuit

Interogări pe un graf

Acum că știi câteva proprietăți de bază ale grafului și ai exersat utilizarea facilităților de vizualizare din NetworkX pentru a-i explora componentele, e momentul să îl interoghezi pentru noduri și muchii. Mai exact, vei căuta „noduri de interes" și „muchii de interes". Pentru asta, vei folosi metodele .nodes() și .edges() prezentate de Eric în video. Metoda .nodes() returnează un iterabil de tip Node view, iar metoda .edges() returnează un iterabil de tip edge view, în care fiecare tuplu arată nodurile prezente pe acea muchie. Reține că, dacă pasezi argumentul data=True acestor metode, vei obține și metadatele asociate nodurilor și muchiilor.

Vei scrie liste comprehensve pentru a construi eficient aceste interogări într-o singură linie. Pentru un refresh despre liste comprehensive, consultă Partea 2 a cursului Python Data Science Toolbox de pe DataCamp. Structura unei liste comprehensive este:

[ expresie de ieșire for variabilă iterator in iterabil if expresie predicat ].

Trebuie să completezi _iterabil_ și _expresia predicat_. Nu ezita să îți testezi răspunsul explorând graful în Shell-ul IPython înainte de a trimite soluția.

Acest exercițiu face parte din cursul

Introducere în analiza rețelelor în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește o listă comprehensivă pentru a obține o listă de noduri din graful T care au eticheta 'occupation' cu valoarea 'scientist'.
    • Expresia de ieșire n a fost deja specificată, împreună cu variabilele iterator n și d. Sarcina ta este să completezi iterabilul și expresia condițională.
    • Folosește metoda .nodes() a lui T pentru a accesa nodurile și asigură-te că specifici data=True pentru a obține metadatele nodurilor.
    • Variabila iterator d este un dicționar. Cheia de interes este 'occupation', iar valoarea de interes este 'scientist'.
  • Folosește o listă comprehensivă pentru a obține o listă de muchii din graful T care au fost formate de cel puțin 6 ani, adică înainte de 1 ianuarie 2010.
    • Sarcina ta este din nou să completezi iterabilul și expresia condițională.
    • Folosește metoda .edges() a lui T pentru a accesa muchiile. Asigură-te că obții și metadatele pentru muchii.
    • Datele sunt stocate ca obiecte datetime.date în dicționarul de metadate d, sub cheia 'date'. De exemplu, pentru a accesa data 1 ianuarie 2009, valoarea din dicționar ar fi date(2009, 1, 1).

Exercițiu interactiv practic

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

# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']

# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]
Editează și rulează codul