2015-11-14 12 views
6

Sto scrivendo una funzione che riceve un grafico come input. La prima cosa che devo fare è determinare l'ordine del grafico (cioè il numero di vertici nel grafico).Come trovo il numero di vertici in un grafico creato da iGraph in python?

Voglio dire, potrei usare g.summary() (che restituisce una stringa che include il numero di vertici), ma poi avrei analizzato la stringa per ottenere il numero di vertici - e questo è solo cattivo.

Per ottenere il numero di spigoli sto usando len(g.get_edgelist()), che funziona. Ma non c'è lo g.get_vertexlist(), quindi non posso usare lo stesso metodo.

Sicuramente esiste un modo semplice per eseguire ciò che non prevede l'analisi delle stringhe.

risposta

9

g.vcount() è una funzione dedicata in igraph che restituisce il numero di vertici. Allo stesso modo, g.ecount() restituisce il numero di spigoli, ed è molto più veloce di len(g.get_edgelist()) in quanto non è necessario costruire in anticipo l'intero bordo.

1

g.vs deve restituire la sequenza di vertici come oggetto igraph.VertexSeq:

>>> from igraph import Graph 
>>> g = Graph.Formula("A-B") 
>>> g.vs["name"] 
['A', 'B'] 
>>> len(g.vs) 
2 
>>> g.vcount() 
2 

Edit: Come @Tamas menziona seguito, g.vcount() sarà anche restituire il numero di vertici. Esempio modificato per tener conto di ciò.

Problemi correlati