Ich möchte die Koordinaten der Eckpunkte eines Graphen in Graph-Tool auf effiziente Weise angeben.Vertices Koordinaten in Graph-Tool
eine csv gegeben, die wie folgt aussieht:
Node,X,Y
1,2.5,3.8
2,3.4,2.9
...
I Eckpunkt 1 an der Position (2.5,3.8) etc ... plotten Diagramm-Tool möchtenEine nicht effiziente Lösung ist gegeben in: Explicit vertex position in python graph-tool, so kann ich grundsätzlich eine for-Schleife über alle meine Koordinaten verwenden und sie in der Eigenschaft Karte 'pos' speichern. Wenn mein Graph ‚g‘ und meine csv wird mit Pandas in dem Datenrahmen gelesen ‚Koordinaten‘, kann ich:
for i in range(1,numnodes+1):
pos[g.vertex(i)] = (coordinates.values[i-1,1],coordinates.values[i-1,2])
Das Problem ist, dass meine Anzahl von Knoten, numnodes groß ist (~ 10^7) und das kann einige Zeit dauern.
Gibt es eine effizientere Möglichkeit, diese Operation durchzuführen, indem Sie die Daten direkt in die Eigenschaftskarte 'pos' eingeben?
Können Sie versuchen, es in vektorisierter Weise zu verwenden: 'pos = Koordinaten [['X', 'Y']]]. Values' statt looping? Ich weiß nicht, Graph-Tool-Modul, aber ich denke, es sollte in der Lage sein mit numby Arrays oder vielleicht sogar mit Pandas Datenrahmen zu arbeiten ... – MaxU