Subgrafos II
En el ejercicio anterior te dimos una lista de nodos cuyos vecinos te pedimos que extrajeras.
Vamos con un ejercicio más en el que extraes los nodos que tienen una propiedad concreta en sus metadatos y sus vecinos. Esto debería recordarte lo que has aprendido sobre usar list comprehensions para encontrar nodos. El ejercicio también reforzará tu capacidad para componer funciones que ya has usado antes.
Este ejercicio forma parte del curso
Introducción al análisis de redes en Python
Instrucciones del ejercicio
- Usando una list comprehension, extrae los nodos que tengan el metadato
'occupation'como'celebrity'junto con sus vecinos:- La expresión de salida de la list comprehension es
n, y hay dos variables iteradoras:nyd. El iterable es la lista de nodos deT(incluyendo los metadatos, que puedes especificar condata=True) y la expresión condicional es si la clave'occupation'del diccionario de metadatosdes igual a'celebrity'.
- La expresión de salida de la list comprehension es
- Colócalos en un nuevo subgrafo llamado
T_sub. Para ello:- Itera sobre los nodos, calcula los vecinos de cada nodo y añádelos al conjunto de nodos
nodesetusando el método.union(). Esta última parte ya está hecha por ti. - Usa
nodesetjunto con el métodoT.subgraph()para calcularT_sub.
- Itera sobre los nodos, calcula los vecinos de cada nodo y añádelos al conjunto de nodos
- Dibuja
T_suben pantalla.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Extract the nodes of interest: nodes
nodes = [n for n, d in ____ if ____ == ____]
# Create the set of nodes: nodeset
nodeset = set(nodes)
# Iterate over nodes
for n in ____:
# Compute the neighbors of n: nbrs
nbrs = ____
# Compute the union of nodeset and nbrs: nodeset
nodeset = nodeset.union(nbrs)
# Compute the subgraph using nodeset: T_sub
T_sub = ____
# Draw T_sub to the screen
____
plt.show()