ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Escribe una función llamada nodes_with_m_nbrs() que tenga dos parámetros —G y m— y devuelva todos los nodos que tienen m vecinos. Para ello:
    • Itera por todos los nodos de G (sin incluir los metadatos).
    • Usa las funciones len() y list() junto con el método .neighbors() para calcular el número total de vecinos que tiene el nodo n en el grafo G.
      • Si el número de vecinos del nodo n es igual a m, añade n al conjunto nodes usando el método .add().
    • Tras iterar por todos los nodos de G, devuelve el conjunto nodes.
  • Usa tu función nodes_with_m_nbrs() para obtener todos los nodos que tienen 6 vecinos en el grafo T.

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(____)
Editar y ejecutar código