Python Graph Library [chiuso]


354

Sto scrivendo un'applicazione Python che farà un uso intensivo di una struttura di dati grafici. Niente di terribilmente complesso, ma sto pensando che una sorta di libreria di algoritmi grafico / grafico mi aiuterebbe. Ho cercato su Google, ma non trovo nulla che mi salti particolarmente.

Qualcuno ha qualche buon consiglio?


Quali algoritmi grafici stai cercando?
Andrew,

1
Amoss, stavo cercando una libreria di grafici in grado di calcolare i percorsi più brevi dati i pesi. Roba di base, davvero. Ho finito per andare con networkx. Funziona abbastanza bene. Non ho toccato il progetto da un po ', però. Questa domanda è stata posta oltre un anno fa.
cpatrick,

108
È sorprendentemente strano che ci siano domande così utili e che un voto molto elevato come questo possa essere classificato come "non costruttivo".
Jim Raynor,

1
Puoi anche usare un "database grafico nativo" come neo4j, quindi usare un binding python per discutere con il db?
A STEFANI

3
@JimRaynor "Non costruttivo" è stato un vecchio fermo tutto. Le ragioni vicine sono state aggiornate per meglio (non perfettamente, ma meglio) coprire l'uso previsto. Oggi, questo sarebbe chiuso come una domanda di raccomandazione.
jpmc26,

Risposte:


237

Ci sono due scelte eccellenti:

NetworkX

e

IGRAPH

Mi piace NetworkX, ma leggo anche cose positive su igraph. Uso regolarmente NetworkX con grafici con 1 milione di nodi senza problemi (si tratta di raddoppiare il sovraccarico di un dict di dimensioni V + E)

Se si desidera un confronto delle funzionalità, vedere questo nell'elenco Networkx-discuss

Discussione confronto funzionalità


4
In particolare, quello che mi piace di Networkx .... è principalmente in Python, facile da modificare e comprendere il codice sorgente, e sembra per lo più "pythonic".
Gregg Lind

1
Mi chiedevo, l'hai usato con un * o algoritmi simili?
Dassouki,

4
Ho appena valutato entrambi. networkxè installabile tramite pip, mentre igraphnon lo è. Ciò rende igraphpiù difficile l'utilizzo come dipendenze nei setup.pyfile.
exhuma,

3
Come aggiornamento per il 2013, vado con networkx solo b / c ha un github e sembra più aggiornato di tutte le opzioni in questa risposta e le altre
Мати Тернер

1
igraph ha anche un github: github.com/igraph/python-igraph
user_1_1_1

105

Vorrei collegare la mia libreria Graph Python: graph-tool .

È molto veloce, poiché è implementato in C ++ con la libreria Boost Graph e contiene molti algoritmi e ampia documentazione.


6
lo strumento grafico è fantastico.
Sean,

5
+1 per lo strumento grafico. Lo stiamo usando nel nostro laboratorio. È molto veloce rispetto ad altre librerie Python. Inoltre, il disegno e la visualizzazione di grafici sono piuttosto fantastici in Graph-Tool. Ci vuole molto tempo per compilare però!
Dilawar,

5
Sfortunatamente nessun supporto per Windows :(
Mike Chaliy,

2
@TiagoPeixoto Sembra così promettente ma non può usarlo su Windows. Sono bloccato con NetworkX, trovandolo troppo lento.
Naman,

2
@ColonelPanic Questa è una FAQ, vedi graph-tool.skewed.de/download : "La risposta breve è che non può essere fatto, dal momento che graph-tool dipende fondamentalmente da alcune (eccellenti) librerie C ++ come Boost, che sono non installabile tramite pip. "
Tiago Peixoto,



6

1
Bel dehmann, ci sono andato per primo (essendo un programmatore C ++ dal commercio e una spinta assolutamente amorevole), ma questo mi spaventa: le associazioni BGL-Python non vengono più mantenute <a top of page>
cpatrick

3
Guarda invece Graph-Tool, è basato su bgl e attivo.
Sean,



0

Secondo il suggerimento di zweiterlinde di usare il pitone-grafico. L'ho usato come base per un progetto di ricerca basato su grafici a cui sto lavorando. La biblioteca è ben scritta, stabile e ha una buona interfaccia. Gli autori sono anche pronti a rispondere a domande e rapporti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.