2016-07-25 8 views
6

Ich frage mich, wo die Funktion Read_Edgelist die ursprüngliche ID aus der Kantenliste speichert? oder unter welchem ​​Attributnamen?IDs des Anfangsknotens beim Erstellen eines Graphen aus der Kantenliste

wird angenommen, dass ich eine Kantenliste lese wie:

1 2 
2 1 
1 3 

, wo die Zahlen 1,2,3 die Ide (oder Namen) der Knoten sind. Wo speichert der iGraph (Python-Version) diese IDs? Ich habe versucht, diese IDs aus dem Attribut name oder id abrufen, aber es hat nicht funktioniert, da diese beiden Attribute scheinbar explizit definiert werden müssen.

+0

'my_graph.es' die Randsequenz des Graphen zeigen, sollte –

+0

Ich habe das versucht, und mit 'Quelle und' Ziel 'kann ich die Knoten abrufen. Aber ich weiß immer noch nicht, wo diese originalen IDs gespeichert sind! –

+0

@ M.M, Ich habe meine Antwort bearbeitet, um Informationen darüber hinzuzufügen, wo die Knoten-IDs gespeichert sind. –

Antwort

2

Read_Edgelist Angenommen, der Knoten ids sind die aufeinanderfolgenden ganzen Zahlen von 0 bis m, wobei m die maximale ganze Zahl in der Kantenliste ist. Es gibt also keine Notwendigkeit, Knoten-IDs zu speichern.

Zum Beispiel, wenn Ihr edgelist.txt ist 1 3, dieser Code

import igraph as ig 
g = ig.Graph.Read_Edgelist("edgelist.txt") 
print g.get_adjacency() 

ein Diagramm mit vier Knoten erzeugt (0, 1, 2, 3) und druckt

[[0, 0, 0, 0] 
[0, 0, 0, 1] 
[0, 0, 0, 0] 
[0, 0, 0, 0]] 

Sehen Sie diese answer wenn Sie nicht möchten, dass "intermediate" Knoten erstellt werden.

Während die folgende ist nicht notwendig, für einen Graphen mit aufeinanderfolgenden Knoten-IDs beginnend mit 0, könnte man den Knoten-IDs unter Verwendung zugreifen VertexSeq und Vertex:

for v in g.vs: 
    print v.index # node id 
Verwandte Themen