Python Graph Library [cerrado]


354

Estoy escribiendo una aplicación de Python que hará un uso intensivo de una estructura de datos gráficos. Nada terriblemente complejo, pero estoy pensando que algún tipo de biblioteca de gráficos / algoritmos de gráficos me ayudaría. Busqué en Google, pero no encuentro nada que me salte particularmente.

Alguien tiene alguna buena recomendación?


¿Qué algoritmos gráficos estás buscando?
Andrew

1
Amoss, estaba buscando una biblioteca de gráficos que pudiera calcular los caminos más cortos dados los pesos. Cosas básicas, de verdad. Terminé yendo con networkx. Funciona bastante bien Sin embargo, no he tocado el proyecto en mucho tiempo. Esta pregunta se hizo hace más de un año.
cpatrick

108
Es sorprendentemente extraño que haya preguntas tan útiles y que obtener muchos votos como este se pueda clasificar como "no constructivo".
Jim Raynor

1
También puede usar "base de datos de gráficos nativos" como neo4j, luego usar un enlace de python para discutir con el db?
A STEFANI

3
@JimRaynor "No constructivo" era una vieja trampa para todos. Las razones cercanas se han actualizado para mejorar (no perfectamente, pero mejor) cubren el uso previsto. Hoy, esto se cerraría como una pregunta de recomendación.
jpmc26

Respuestas:


237

Hay dos excelentes opciones:

NetworkX

y

igraph

Me gusta NetworkX, pero también leo cosas buenas sobre igraph. Rutinariamente uso NetworkX con gráficos con 1 millón de nodos sin ningún problema (se trata del doble de la sobrecarga de un dict de tamaño V + E)

Si desea una comparación de características, consulte esto en la lista de discusión de Networkx

Hilo de comparación de características


44
En particular, lo que me gusta de Networkx ... es principalmente en Python, fácil de editar y entender el código fuente, y se siente principalmente "pitón".
Gregg Lind

1
Me preguntaba, ¿lo has usado con un * o algoritmos similares?
dassouki

44
Acabo de evaluar ambos. networkxes instalable a través de pip, mientras igraphque no lo es. Esto hace que sea igraphmás difícil de usar como dependencias en sus setup.pyarchivos.
exhuma

3
Como una actualización para 2013, voy con networkx solo b / c, tiene un github y se ve más actualizado de todas las opciones en esta respuesta y las demás
Мати Тернер

1
igraph también tiene un github: github.com/igraph/python-igraph
user_1_1_1

105

Me gustaría conectar mi propia biblioteca de gráficos python: graph-tool .

Es muy rápido, ya que se implementa en C ++ con Boost Graph Library, y contiene muchos algoritmos y una extensa documentación.


66
La herramienta gráfica es fantástica.
Sean

55
+1 para herramienta gráfica. Lo hemos estado usando en nuestro laboratorio. Es realmente rápido en comparación con otras bibliotecas de Python. Además, dibujar y mostrar gráficos es bastante impresionante en la herramienta de gráficos. ¡Sin embargo, toma mucho tiempo compilar!
Dilawar

55
Desafortunadamente no hay soporte para Windows :(
Mike Chaliy

2
@TiagoPeixoto Esto parece muy prometedor, pero no se puede usar en Windows. Estoy atascado con NetworkX, encontrándolo demasiado lento.
Naman

2
@ColonelPanic Esta es una pregunta frecuente, consulte graph-tool.skewed.de/download : "La respuesta corta es que no se puede hacer, ya que la herramienta gráfica depende de manera crucial de algunas bibliotecas C ++ (excelentes) como Boost, que son no se puede instalar a través de pip ".
Tiago Peixoto






0

Secundo la sugerencia de zweiterlinde de usar python-graph. Lo he usado como base de un proyecto de investigación basado en gráficos en el que estoy trabajando. La biblioteca está bien escrita, es estable y tiene una buena interfaz. Los autores también responden rápidamente a consultas e informes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.