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
Instrucțiuni pentru exercițiu
- Folosește o listă comprehensivă pentru a obține o listă de noduri din graful
Tcare au eticheta'occupation'cu valoarea'scientist'.- Expresia de ieșire
na fost deja specificată, împreună cu variabilele iteratornșid. Sarcina ta este să completezi iterabilul și expresia condițională. - Folosește metoda
.nodes()a luiTpentru a accesa nodurile și asigură-te că specificidata=Truepentru a obține metadatele nodurilor. - Variabila iterator
deste un dicționar. Cheia de interes este'occupation', iar valoarea de interes este'scientist'.
- Expresia de ieșire
- Folosește o listă comprehensivă pentru a obține o listă de muchii din graful
Tcare 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 luiTpentru a accesa muchiile. Asigură-te că obții și metadatele pentru muchii. - Datele sunt stocate ca obiecte
datetime.dateîn dicționarul de metadated, sub cheia'date'. De exemplu, pentru a accesa data 1 ianuarie 2009, valoarea din dicționar ar fidate(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 ____ < ____]