Inhaltsverzeichnis:
Video: Data Analysis with Python for Excel Users 2024
Die meisten Datenwissenschaftler müssen irgendwann mit Graphdaten arbeiten. Python bietet Ihnen diese Funktionalität. Stellen Sie sich Datenpunkte vor, die mit anderen Datenpunkten verbunden sind, z. B. wie eine Webseite über Hyperlinks mit einer anderen Webseite verbunden ist. Jeder dieser Datenpunkte ist ein Knoten . Die Knoten verbinden sich über Links miteinander.
Nicht jeder Knoten ist mit jedem anderen Knoten verbunden, daher werden die Knotenverbindungen wichtig. Durch die Analyse der Knoten und ihrer Verknüpfungen können Sie alle Arten von interessanten Aufgaben in der Datenwissenschaft ausführen, wie z. B. die Definition des besten Weges, um von der Arbeit über Straßen und Autobahnen nach Hause zu gelangen.
Die Adjazenzmatrix verstehen
Eine Adjazenzmatrix repräsentiert die Verbindungen zwischen Knoten eines Graphen. Wenn eine Verbindung zwischen einem Knoten und einem anderen Knoten besteht, zeigt die Matrix diesen Wert als einen Wert größer als 0 an. Die genaue Darstellung von Verbindungen in der Matrix hängt davon ab, ob der Graph gerichtet ist (wo die Richtung der Verbindung von Bedeutung ist) oder ungerichtet ist.
Ein Problem bei vielen Online-Beispielen ist, dass die Autoren sie zu Erklärungszwecken einfach halten. Allerdings sind Grafiken aus der realen Welt oft immens und lassen sich nicht einfach durch Visualisierung analysieren. Denken Sie nur an die Anzahl der Knotenpunkte, die selbst eine kleine Stadt bei der Betrachtung von Straßenkreuzungen hätte. Viele andere Diagramme sind viel größer, und wenn man sie einfach betrachtet, werden sie niemals interessante Muster offenbaren. Datenwissenschaftler nennen das Problem bei der Darstellung komplexer Graphen mit Hilfe einer Adjazenzmatrix a hairball .
Ein Schlüssel zur Analyse von Adjazenzmatrizen besteht darin, sie auf bestimmte Arten zu sortieren. Beispielsweise könnten Sie die Daten nach anderen Eigenschaften als den tatsächlichen Verbindungen sortieren. Ein Diagramm der Straßenverbindungen könnte das Datum enthalten, an dem die Straße zuletzt mit den Daten gepflastert wurde, sodass Sie nach Mustern suchen können, die jemanden anhand der am besten reparierten Straßen leiten. Kurz gesagt, wird es nützlich, die Graphendaten nützlich zu machen, indem die Organisation dieser Daten auf spezifische Weise manipuliert wird.
Verwenden von NetworkX-Grundlagen
Das Arbeiten mit Diagrammen kann schwierig werden, wenn Sie den gesamten Code von Grund auf neu schreiben müssen. Glücklicherweise ist es mit dem NetworkX-Paket für Python einfach, die Struktur, Dynamik und Funktionen komplexer Netzwerke (oder Graphen) zu erstellen, zu manipulieren und zu studieren. Sie können das Paket auch verwenden, um mit Digraphen und Multigraphen zu arbeiten.
Das Hauptaugenmerk von NetworkX liegt auf der Vermeidung der gesamten Problematik von Haarballen.Die Verwendung einfacher Aufrufe verbirgt einen Großteil der Komplexität der Arbeit mit Diagrammen und Adjazenzmatrizen aus der Sicht. Das folgende Beispiel zeigt, wie eine einfache Adjazenzmatrix aus einem der von NetworkX bereitgestellten Diagramme erstellt wird:
importiert networkx als nx G = nx. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())
Das Beispiel beginnt mit dem Importieren des erforderlichen Pakets. Es erstellt dann ein Diagramm mit der Vorlage cycle_graph (). Der Graph enthält zehn Knoten. Durch Aufruf von adjacency_matrix () wird die Adjazenzmatrix aus dem Diagramm erstellt. Der letzte Schritt besteht darin, die Ausgabe als Matrix zu drucken, wie hier gezeigt:
[[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]]
Sie müssen nicht Erstellen Sie Ihre eigene Grafik zu Testzwecken von Grund auf neu. Die NetworkX-Site dokumentiert eine Reihe von Standard-Diagrammtypen, die Sie verwenden können und die alle in IPython verfügbar sind.
Es ist interessant zu sehen, wie der Graph aussieht, nachdem Sie ihn erzeugt haben. Der folgende Code zeigt das Diagramm für Sie an.
Das ursprüngliche Diagramm wird gezeichnet.importieren Sie Matplotlib. Pyplot als Plt nx. draw_networkx (G) plt. show ()
Das Diagramm zeigt, dass Sie eine Kante zwischen den Knoten 1 und 5 hinzufügen können. Hier ist der Code, der benötigt wird, um diese Aufgabe mit der Funktion add_edge () auszuführen.
Zeichnen der Grafikaddition.G. add_edge (1, 5) nx. draw_networkx (G) plt. zeige ()