1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Úvod do analýzy sítí v Pythonu

Connected

cvičení

Dotazy nad grafem

Teď, když znáš základní vlastnosti grafu a umíš pracovat s kreslicími nástroji NetworkX pro vizualizaci jeho komponent, je čas prozkoumat, jak se na něj dá dotazovat – tedy jak hledat konkrétní uzly a hrany. Konkrétně se zaměříš na "uzly zájmu" a "hrany zájmu". K tomu využiješ metody .nodes() a .edges(), které Eric představil ve videu. Metoda .nodes() vrací iterovatelný pohled na uzly, zatímco .edges() vrací iterovatelný pohled na hrany – každá n-tice přitom ukazuje uzly, které daná hrana spojuje. Nezapomeň, že předáním klíčového argumentu data=True získáš i metadata přiřazená k uzlům nebo hranám.

Dotazy budeš sestavovat pomocí list comprehensions – vše na jediném řádku. Pokud si potřebuješ připomenout, jak list comprehensions fungují, podívej se na část 2 kurzu Python Data Science Toolbox. Tady je základní struktura:

[ výstupní výraz for proměnná iterátoru in iterovatelný objekt if podmínkový výraz ].

Tvým úkolem je doplnit _iterovatelný objekt_ a _podmínkový výraz_. Klidně si odpověď nejdřív otestuj v IPython Shellu a teprve pak řešení odešli.

Pokyny

100 XP
  • Pomocí list comprehension získej seznam uzlů z grafu T, které mají atribut 'occupation' s hodnotou 'scientist'.
    • Výstupní výraz n je už zadaný, stejně jako proměnné iterátoru n a d. Tvým úkolem je doplnit iterovatelný objekt a podmínkový výraz.
    • Pomocí metody .nodes() objektu T přistup k jeho uzlům a nezapomeň zadat data=True, aby ses dostal/a k metadatům uzlů.
    • Proměnná iterátoru d je slovník. Klíč, který tě zajímá, je 'occupation' a hledaná hodnota je 'scientist'.
  • Pomocí list comprehension získej seznam hran z grafu T, které existují alespoň 6 let, tedy vznikly před 1. lednem 2010.
    • Opět doplň iterovatelný objekt a podmínkový výraz.
    • Pomocí metody .edges() objektu T přistup k jeho hranám. Nezapomeň si vyžádat i metadata hran.
    • Data jsou ve slovníku metadat d uložena jako objekty datetime.date pod klíčem 'date'. Například pro přístup k datu 1. ledna 2009 by hodnota slovníku byla date(2009, 1, 1).