Obsah:
Video: Azure Friday | Azure Notebooks 2025
Většina vědců v oblasti dat musí v určitém okamžiku pracovat s údaji o grafech. Python vám dává tuto funkci. Představte si datové body, které jsou připojeny k jiným datovým bodům, například jak je jedna webová stránka propojena s jinou webovou stránkou přes hypertextové odkazy. Každý z těchto datových bodů je uzel . Uzly se vzájemně propojují pomocí odkazů .
Ne každý uzel odkazuje na každý jiný uzel, takže připojení uzlů se stává důležitým. Analýzou uzlů a jejich vazeb můžete provádět nejrůznější zajímavé úkoly v oblasti vědy o datech, například definovat nejlepší způsob, jak se dostat z práce do vašeho domova pomocí ulic a dálnic.
Pochopení matice sousedství
představuje spojení mezi uzly grafu. Pokud existuje spojení mezi uzly, matice to označuje jako hodnotu větší než 0. Přesné znázornění spojení v matici závisí na tom, zda je graf nasměrován (kde směr záležitosti má závislost) nebo neorientovaný.
Problémem mnoha příkladů online je to, že autoři jsou pro účely vysvětlení jednoduchí. Grafy v reálném světě jsou však často obrovské a vylučují snadnou analýzu prostě vizualizací. Jen si přemýšlejte o počtu uzlů, které by i malé město mělo při zvažování křižovatky ulic. Mnoho dalších grafů je mnohem větší a prostě se na ně díváte, nikdy neukáže žádné zajímavé vzory. Vědci z oblasti vědy nazývají problém při prezentaci libovolného složitého grafu s použitím adjacency matice vlasové koule .
Jedním z klíčů pro analýzu matric s přilehlostí je jejich třídění určitými způsoby. Můžete například zvolit řazení dat podle jiných vlastností, než jsou skutečná připojení. Graf spojů na ulici může obsahovat datum, kdy byla ulice naposledy dlážděna daty, což vám umožní hledat vzory, které nasměrují někoho na ulicích, které jsou v nejlepším stavu. Stručně řečeno, učinit z grafu užitečná data se stává záležitostí manipulace s organizací těchto dat určitými způsoby.
Používání základních funkcí sítě NetworkX
Práce s grafy by se mohla stát obtížná, kdybyste museli zapsat celý kód od začátku. Naštěstí balíček NetworkX pro Python usnadňuje vytváření, manipulaci a studium struktury, dynamiky a funkcí komplexních sítí (nebo grafů). Balík můžete použít i pro práci s grafy a multigrafiky.
Hlavním důrazem sítě NetworkX je vyhnout se celému problému koulí.Použití jednoduchých hovorů skrývá většinu složitosti práce s grafy a adjacency maticemi z pohledu. Následující příklad ukazuje, jak vytvořit základní matici adjacency z jednoho z grafů dodaných v NetworkX:
import networkx jako nx G = nx. cyklus_grafu (10) A = nx. adjacency_matrix (G) print (A. todense ())
Příklad začíná importováním požadovaného balíčku. Potom vytvoří graf pomocí šablony cycle_graph (). Graf obsahuje deset uzlů. Volání adjacency_matrix () vytvoří matici adjacency z grafu. Posledním krokem je vytisknout výstup jako matici, jak je zde zobrazeno:
[[0 1 0 0 0 0 0 0 0 1] [1 0 1 0 0 0 0 0 0 0] [0 1 0 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 vytvořte svůj vlastní graf od začátku pro účely testování. Stránka NetworkX dokumentuje řadu standardních typů grafů, které můžete použít, které jsou všechny dostupné v rámci IPythonu.
Je zajímavé vidět, jak se graf stará po vygenerování. Následující kód zobrazuje graf pro vás.
Vykreslení původního grafu.
Graf ukazuje, že můžete přidat hranu mezi uzly 1 a 5. Zde je kód potřebný k provedení této úlohy pomocí funkce add_edge ().
Vykreslení grafu.
