ComenzarEmpieza gratis

Consultas sobre un grafo

Ahora que ya conoces algunas propiedades básicas del grafo y has practicado usando las funciones de dibujo de NetworkX para visualizar sus componentes, es momento de explorar cómo puedes consultarlo para obtener nodos y aristas. En concreto, vas a buscar "nodos de interés" y "aristas de interés". Para ello, usarás los métodos .nodes() y .edges() que Eric explicó en el vídeo. El método .nodes() devuelve un iterable tipo Node view, mientras que .edges() devuelve un iterable tipo edge view, en el que cada tupla muestra los nodos presentes en esa arista. Recuerda que si pasas el argumento con palabra clave data=True en estos métodos, también recuperas los metadatos correspondientes asociados a los nodos y a las aristas.

Escribirás list comprehensions para construir estas consultas de forma eficiente en una sola línea. Si necesitas refrescar cómo funcionan, consulta la Parte 2 del curso Python Data Science Toolbox de DataCamp. Esta es la “receta” de una list comprehension:

[ expresión de salida for variable iteradora in iterable if expresión de predicado ].

Tienes que completar el _iterable_ y la _expresión de predicado_. Si quieres, haz pruebas explorando el grafo en el IPython Shell antes de Enviar respuesta.

Este ejercicio forma parte del curso

Introducción al análisis de redes en Python

Ver curso

Instrucciones del ejercicio

  • Usa una list comprehension para obtener una lista de nodos del grafo T que tengan la etiqueta 'occupation' con valor 'scientist'.
    • La expresión de salida n ya está especificada, junto con las variables iteradoras n y d. Tu tarea es completar el iterable y la expresión condicional.
    • Usa el método .nodes() de T para acceder a sus nodos y no olvides indicar data=True para obtener los metadatos de los nodos.
    • La variable iteradora d es un diccionario. La clave de interés aquí es 'occupation' y el valor de interés es 'scientist'.
  • Usa una list comprehension para obtener una lista de aristas del grafo T que se formaron hace al menos 6 años, es decir, de antes del 1 ene 2010.
    • De nuevo, tu tarea es completar el iterable y la expresión condicional.
    • Usa el método .edges() de T para acceder a sus aristas. Asegúrate también de obtener los metadatos de las aristas.
    • Las fechas se almacenan como objetos datetime.date en el diccionario de metadatos d, bajo la clave 'date'. Para acceder, por ejemplo, a la fecha 1 ene 2009, el valor del diccionario sería date(2009, 1, 1).

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']

# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]
Editar y ejecutar código