Saltar al contenido principal

NetworkX

NetworkX es una biblioteca de Python de código abierto para crear, transformar y analizar redes, útil para estudiar la estructura de las relaciones entre los actores de un sistema de innovación dentro de un flujo de trabajo en Python.

 

Qué ofrece

NetworkX es un paquete para el análisis de redes que Aric Hagberg, Daniel Schult y Pieter Swart empezaron a desarrollar en el Laboratorio Nacional de Los Álamos (Estados Unidos) y que se publicó como código abierto en 2005. Hoy lo mantiene una comunidad de desarrolladores. Está escrito en Python y representa las redes con estructuras de datos propias del lenguaje, lo que permite asociar cualquier atributo a nodos y aristas. Sus funciones cubren:

  • Tipos de redes: redes dirigidas y no dirigidas, ponderadas y multirredes con varias aristas entre los mismos nodos.
  • Algoritmos: caminos más cortos, medidas de centralidad, componentes, flujos, redes bipartitas y detección de comunidades con métodos como Louvain, Leiden o la propagación de etiquetas.
  • Generadores: modelos clásicos y aleatorios de redes para comparar una red real con referencias teóricas.
  • Entrada y salida: lectura y escritura de formatos como GraphML, GEXF, GML, Pajek o listas de aristas, y conversión desde y hacia tablas de pandas y matrices de NumPy y SciPy.
  • Dibujo: algoritmos de disposición y representación de la red mediante Matplotlib o Graphviz.

Un sistema de módulos externos (backends) permite ejecutar algunas funciones en paralelo o en tarjetas gráficas sin cambiar el código.

Uso y valoración

Su integración con el ecosistema científico de Python permite construir una red a partir de datos tabulares —coautorías, participaciones en proyectos, copatentes o vínculos entre agentes de un territorio—, calcular indicadores de centralidad y comunidades y devolver los resultados a una tabla para combinarlos con otras variables o con análisis estadísticos. Su sintaxis cercana al Python habitual y su documentación extensa, con numerosos ejemplos, facilitan el aprendizaje a quien ya programa en este lenguaje.

Conviene tener en cuenta que, al estar escrito en Python puro, puede resultar lento y consumir mucha memoria con redes muy grandes, salvo que se recurra a los backends de aceleración. Sus funciones de dibujo son básicas: la propia documentación aconseja usar programas dedicados a la visualización, como Gephi, para obtener gráficos de calidad. Además, requiere programar y la documentación solo está en inglés.

Ficha técnica

  • Desarrollador: comunidad de código abierto iniciada por Aric Hagberg, Daniel Schult y Pieter Swart.
  • Modelo de acceso: gratuito y de código abierto (licencia BSD de tres cláusulas).
  • Plataforma: biblioteca de Python, instalable con pip o conda.
  • Idioma: documentación en inglés.
  • Cuenta: no requiere.
  • Alternativas: igraph.

Enlaces

Ir a Arriba