CommencerCommencer gratuitement

Requêtes sur un graphe

Maintenant que vous connaissez quelques propriétés de base du graphe et que vous avez utilisé les outils de dessin de NetworkX pour en visualiser des composants, il est temps d’explorer comment l’interroger pour obtenir des nœuds et des arêtes. Plus précisément, vous allez rechercher des « nœuds d’intérêt » et des « arêtes d’intérêt ». Pour cela, vous utiliserez les méthodes .nodes() et .edges() présentées par Eric dans la vidéo. La méthode .nodes() renvoie un itérable de type vue de nœuds, tandis que .edges() renvoie un itérable de type vue d’arêtes, dans lequel chaque tuple indique les nœuds présents sur cette arête. Rappelez‑vous que le passage de l’argument nommé data=True à ces méthodes permet également de récupérer les métadonnées associées aux nœuds et aux arêtes.

Vous allez écrire des compréhensions de liste pour construire efficacement ces requêtes en une seule ligne. Pour un rappel sur les compréhensions de liste, consultez la Partie 2 du cours Python Data Science Toolbox de DataCamp. Voici la « recette » d’une compréhension de liste :

[ expression de sortie for variable d’itération in itérable if expression prédicat ].

Vous devez compléter l’itérable et l’expression prédicat. N’hésitez pas à prototyper votre réponse en explorant le graphe dans l’IPython Shell avant de soumettre votre solution.

Cet exercice fait partie du cours

Introduction à l’analyse de réseaux en Python

Afficher le cours

Instructions

  • Utilisez une compréhension de liste pour obtenir une liste de nœuds du graphe T ayant l’étiquette 'occupation' égale à 'scientist'.
    • L’expression de sortie n a été fournie, ainsi que les variables d’itération n et d. Votre tâche est de compléter l’itérable et l’expression conditionnelle.
    • Utilisez la méthode .nodes() de T pour accéder à ses nœuds, et veillez à préciser data=True afin d’obtenir les métadonnées des nœuds.
    • La variable d’itération d est un dictionnaire. La clé à considérer ici est 'occupation' et la valeur recherchée est 'scientist'.
  • Utilisez une compréhension de liste pour obtenir une liste d’arêtes du graphe T qui existent depuis au moins 6 ans, c’est‑à‑dire d’avant le 1er janv. 2010.
    • Votre tâche, à nouveau, est de compléter l’itérable et l’expression conditionnelle.
    • Utilisez la méthode .edges() de T pour accéder à ses arêtes. Veillez également à récupérer les métadonnées des arêtes.
    • Les dates sont stockées comme objets datetime.date dans le dictionnaire de métadonnées d, sous la clé 'date'. Pour accéder à la date du 1er janv. 2009, par exemple, la valeur du dictionnaire serait date(2009, 1, 1).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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 ____ < ____]
Modifier et exécuter le code