Inhoudsopgave:
- De aangrenzingsmatrix begrijpen> Een
- Werken met grafieken kan moeilijk worden als u de code helemaal opnieuw moet schrijven. Gelukkig maakt het NetworkX-pakket voor Python het gemakkelijk om de structuur, dynamiek en functies van complexe netwerken (of grafieken) te maken, te manipuleren en te bestuderen. U kunt het pakket ook gebruiken om met digraphs en multigraphs te werken.
Video: Een draaitabel maken met meerdere werkbladen Excel 2016 2024
De meeste gegevenswetenschappers moeten op een gegeven moment met grafiekgegevens werken. Python geeft je die functionaliteit. Stel u datapunten voor die verbonden zijn met andere gegevenspunten, zoals hoe een webpagina via hyperlinks met een andere webpagina is verbonden. Elk van deze gegevenspunten is een -knooppunt . De knooppunten worden met elkaar verbonden via links .
Niet elk knooppunt linkt naar elk ander knooppunt, dus de knooppuntverbindingen worden belangrijk. Door de knooppunten en hun links te analyseren, kunt u allerlei interessante taken uitvoeren op het gebied van gegevenswetenschap, zoals het bepalen van de beste manier om van het werk naar uw huis te komen met behulp van straten en snelwegen.
De aangrenzingsmatrix begrijpen> Een
aanpasmatrix vertegenwoordigt de verbindingen tussen knooppunten van een grafiek. Wanneer er een verbinding is tussen het ene knooppunt en het andere, geeft de matrix dit aan als een waarde groter dan 0. De precieze weergave van verbindingen in de matrix hangt af van de vraag of de grafiek is gericht (waarbij de richting van de verbinding ertoe doet) of niet-gericht. Een probleem met veel online voorbeelden is dat de auteurs ze eenvoudig houden voor uitlegdoeleinden. Real-world grafieken zijn echter vaak enorm en trotseren gemakkelijke analyse eenvoudigweg door visualisatie. Denk maar eens aan het aantal knooppunten dat zelfs een kleine stad zou hebben als je straatkruisingen overweegt. Veel andere grafieken zijn veel groter en alleen al het bekijken ervan onthult nooit interessante patronen. Datawetenschappers noemen het probleem bij het presenteren van een complexe grafiek met behulp van een aangrenzende matrix een
haarbal .
Werken met grafieken kan moeilijk worden als u de code helemaal opnieuw moet schrijven. Gelukkig maakt het NetworkX-pakket voor Python het gemakkelijk om de structuur, dynamiek en functies van complexe netwerken (of grafieken) te maken, te manipuleren en te bestuderen. U kunt het pakket ook gebruiken om met digraphs en multigraphs te werken.
De nadruk van NetworkX ligt op het voorkomen van het hele probleem van haarballen.Het gebruik van eenvoudige oproepen verbergt veel van de complexiteit van het werken met grafieken en naburige matrices uit beeld. In het volgende voorbeeld ziet u hoe u een standaard aanpasmatrix maakt vanuit een van de door NetworkX geleverde grafieken:
importeer netwerkx als nx G = nx. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())
Het voorbeeld begint met het importeren van het vereiste pakket. Vervolgens wordt een grafiek gemaakt met behulp van de sjabloon cycle_graph (). De grafiek bevat tien knooppunten. Als u adjacency_matrix () aanroept, wordt de aanpasmatrix uit de grafiek gemaakt. De laatste stap is om de uitvoer als een matrix af te drukken, zoals hier wordt weergegeven:
[[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 1 0 1 0 0 0 0 0] [0 0 0 1 0 1 0 0 0 0] [0 0 0 0 1 0 1 0 0 0] [0 0 0 0 0 1 0 1 0 0] [0 0 0 0 0 0 1 0 1 0] [0 0 0 0 0 0 0 1 0 1] [1 0 0 0 0 0 0 0 1 0]]
U hoeft niet bouw vanuit scratch een eigen grafiek voor testdoeleinden. De NetworkX-site documenteert een aantal standaardgrafiektypen die u kunt gebruiken, die allemaal beschikbaar zijn binnen IPython.
Het is interessant om te zien hoe de grafiek eruitziet nadat u deze hebt gegenereerd. De volgende code geeft de grafiek voor u weer.
De oorspronkelijke grafiek plotten.
matplotlib importeren. pyplot als plt nx. draw_networkx (G) plt. show ()De plot laat zien dat je een edge kunt toevoegen tussen knooppunten 1 en 5. Dit is de code die nodig is om deze taak uit te voeren met de functie add_edge ().
De grafiektoevoeging plotten.
G. add_edge (1, 5) nx. draw_networkx (G) plt. Show ()