Zum Inhalt

Vorbereitung

Grundidee

dsstools baut auf dem Package für Netzwerkanalyse, NetworkX auf und erweitert es um Funktionen und Integrationen, die im Forschungsbereich des Lehrstuhls Digital Social Science relevant sind. Von daher sollten Grundkenntnisse sowohl in Python als auch in NetworkX vorhanden sein, bevor wir starten können.

Die Grundidee bei dsstools ist, dass immer auf Basis eines networkx.Graph-Objektes gearbeitet wird. Das bedeutet, dass alle Interaktionen mit dem Netzwerk rein auf Basis von dsstools stattfinden können, aber auch immer Funktionen von NetworkX angewandt werden können. Das hat das Ziel, das fortgeschrittene Personen auch komplexere Funktionen selbst schreiben können. Für absolute Beginner sind jedoch die von dsstools bereitgestellten Funktionen völlig ausreichend.

Einstieg in die Programmierung

Lege als Erstes eine Python Datei an und importiere dsstools. Zusätzlich importieren wir networkx, da wir ab und an auf Funktionen des Moduls zurückgreifen:

import dsstools
import networkx as nx

Das Package NetworkX wird im Import innerhalb python immer als networkx geschrieben und für gewöhnlich mit einem Alias nx versehen, um die Schreibweise abzukürzen.

Import eines Graphen

Zuerst muss ein Graph importiert werden. Dazu bietet NetworkX selbst einige unterschiedliche Formate an:

  • read_pajek für Pajek-Dateien
  • read_gexf für Graph Exchange XML Format
  • Ein Überblick über alle kompatiblen Formate ist hier zu finden.

Darüber hinaus stellt dsstools noch mehrere Integrationen bereit, wie Daten oder Netzwerke importiert werden können. Siehe für eine Auflistung hier.

Achtung

Wir empfehlen für den Anfang, die Daten als networkx.DiGraph zu importieren!

Bereinigung (optional)

Manchmal müssen Kanten, deren Ursprungs- und Endknoten identisch ist, aus dem Netzwerk entfernt werden. Das lässt sich mittels networkx erledigen:

graph.remove_edges_from(nx.selfloop_edges(graph))

In diesem Fall werden Selfloops entfernt, also Kanten, deren Start- und Endknoten der gleiche ist. Das kommt bisweilen bei gecrawlten Netzwerken vor.