Calcula el número de vecinos de cada nodo
¿Cómo evalúas si un nodo es importante o no? Hay varias formas de hacerlo y, aquí, vas a fijarte en una métrica: el número de vecinos que tiene un nodo.
Cada grafo de NetworkX G expone un método .neighbors(n) que devuelve un iterador con los nodos que son vecinos del nodo n. Para empezar, usa este método en la Shell de IPython sobre la red de Twitter T para obtener los vecinos del nodo 1. Esto te ayudará a entender cómo funciona la función. Después, tu tarea en este ejercicio es escribir una función que devuelva todos los nodos que tienen m vecinos.
Este ejercicio forma parte del curso
Introducción al análisis de redes en Python
Instrucciones del ejercicio
- Escribe una función llamada
nodes_with_m_nbrs()que tenga dos parámetros —Gym— y devuelva todos los nodos que tienenmvecinos. Para ello:- Itera por todos los nodos de
G(sin incluir los metadatos). - Usa las funciones
len()ylist()junto con el método.neighbors()para calcular el número total de vecinos que tiene el nodonen el grafoG.- Si el número de vecinos del nodo
nes igual am, añadenal conjuntonodesusando el método.add().
- Si el número de vecinos del nodo
- Tras iterar por todos los nodos de
G, devuelve el conjuntonodes.
- Itera por todos los nodos de
- Usa tu función
nodes_with_m_nbrs()para obtener todos los nodos que tienen 6 vecinos en el grafoT.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Define nodes_with_m_nbrs()
def ____:
"""
Returns all nodes in graph G that have m neighbors.
"""
nodes = set()
# Iterate over all nodes in G
for n in ____:
# Check if the number of neighbors of n matches m
if ____ == ____:
# Add the node n to the set
____
# Return the nodes with m neighbors
return nodes
# Compute and print all nodes in T that have 6 neighbors
six_nbrs = ____
print(____)