10 exercices corrigés en NetworkX pour débutants – pratique, solutions et explications détaillées
Bienvenue sur CoinDuDev, l’endroit où coder devient un jeu d’enfant ! Aujourd’hui, on s’attaque à une bibliothèque Python qui déchire tout quand il s’agit de manipuler des graphes : NetworkX. Que tu sois intéressé par les réseaux sociaux, les graphes de transport, ou la théorie des graphes en général, NetworkX est ton allié.
Pour t’aider à bien débuter, voici 10 exercices corrigés en NetworkX, avec des solutions expliquées pas à pas pour que tu gagnes en confiance et maîtrise cette bibliothèque comme un pro.
Pourquoi faire des exercices corrigés en NetworkX ?
NetworkX permet de créer, manipuler et analyser des graphes, c’est-à-dire des structures composées de nœuds (ou sommets) et d’arêtes (ou liens). C’est super utile en data science, informatique théorique, optimisation, et plus encore.
Ces exercices corrigés en NetworkX t’aideront à :
- Comprendre les bases de la création et manipulation de graphes.
- Apprendre à parcourir, analyser et visualiser les graphes.
- Mettre en pratique les concepts théoriques de manière concrète.
Comment utiliser ces exercices corrigés en NetworkX ?
Lis bien chaque énoncé, essaie de coder la solution toi-même, puis vérifie avec la correction. Modifie le code, teste d’autres exemples, c’est le meilleur moyen d’apprendre !
Exercice 1 : Créer un graphe simple
Énoncé : Crée un graphe vide avec NetworkX.
Solution :
import networkx as nx
G = nx.Graph()
print(G)
Explication :
On importe la bibliothèque NetworkX avec l’alias nx
(classique), puis on crée un objet Graph
vide. Tu peux maintenant y ajouter des nœuds et des arêtes.
Exercice 2 : Ajouter des nœuds à un graphe
Énoncé : Ajoute trois nœuds nommés ‘A’, ‘B’, et ‘C’ au graphe.
Solution :
G.add_nodes_from(['A', 'B', 'C'])
print(G.nodes())
Explication :
La méthode add_nodes_from()
permet d’ajouter plusieurs nœuds en une seule fois. Ici, on crée un petit graphe avec 3 sommets.
Exercice 3 : Ajouter des arêtes entre les nœuds
Énoncé : Relie les nœuds ‘A’ à ‘B’ et ‘B’ à ‘C’.
Solution :
G.add_edge('A', 'B')
G.add_edge('B', 'C')
print(G.edges())
Explication :
On utilise la méthode add_edge()
pour créer des liens entre les nœuds. Ces liens sont bidirectionnels dans un graphe non orienté.
Exercice 4 : Afficher les nœuds et les arêtes
Énoncé : Affiche tous les nœuds et arêtes du graphe.
Solution :
print("Nœuds :", G.nodes())
print("Arêtes :", G.edges())
Explication :
Simple et efficace : on liste les sommets et les connexions du graphe.
Exercice 5 : Créer un graphe orienté (Digraph)
Énoncé : Crée un graphe orienté et ajoute une arête de ‘X’ vers ‘Y’.
Solution :
DG = nx.DiGraph()
DG.add_edge('X', 'Y')
print(DG.edges())
Explication :DiGraph
signifie graphe orienté, où les arêtes ont une direction (ici de ‘X’ vers ‘Y’).
Exercice 6 : Calculer le degré d’un nœud
Énoncé : Trouve le degré (nombre de connexions) du nœud ‘B’ dans le graphe non orienté.
Solution :
degre_B = G.degree('B')
print(f"Le degré du nœud B est : {degre_B}")
Explication :
Le degré d’un nœud, c’est le nombre d’arêtes qui le connectent à d’autres nœuds.
Exercice 7 : Trouver les voisins d’un nœud
Énoncé : Liste les nœuds voisins du nœud ‘B’.
Solution :
voisins_B = list(G.neighbors('B'))
print(f"Les voisins de B sont : {voisins_B}")
Explication :
La méthode neighbors()
renvoie un itérateur des nœuds connectés à un nœud donné.
Exercice 8 : Trouver le plus court chemin entre deux nœuds
Énoncé : Trouve le plus court chemin entre ‘A’ et ‘C’.
Solution :
chemin = nx.shortest_path(G, source='A', target='C')
print(f"Plus court chemin entre A et C : {chemin}")
Explication :nx.shortest_path()
calcule le chemin minimal entre deux sommets dans un graphe non orienté.
Exercice 9 : Afficher un graphe avec Matplotlib
Énoncé : Visualise le graphe non orienté.
Solution :
import matplotlib.pyplot as plt
nx.draw(G, with_labels=True)
plt.show()
Explication :
On utilise Matplotlib pour afficher graphiquement le graphe. La fonction nx.draw()
dessine le graphe et plt.show()
affiche la fenêtre.
Exercice 10 : Ajouter des poids aux arêtes
Énoncé : Ajoute un poids de 5 à l’arête entre ‘A’ et ‘B’.
Solution :
G['A']['B']['weight'] = 5
print(G.edges(data=True))
Explication :
Les graphes NetworkX peuvent contenir des attributs. Ici, on ajoute un poids qui peut représenter une distance, un coût, etc.
FAQ
NetworkX est-il utile pour la data science ?
Oui, absolument ! NetworkX est très utile pour analyser les relations entre données, comme les réseaux sociaux, les graphes de transport ou les interactions entre entités dans un dataset.
Faut-il maîtriser Python avant d’apprendre NetworkX ?
Il est recommandé d’avoir des bases en Python (boucles, listes, dictionnaires) avant de te lancer dans NetworkX. Cela facilitera la compréhension des exercices et des structures de graphe.
Puis-je gagner de l’argent en apprenant NetworkX ?
Bien sûr ! La maîtrise de NetworkX peut t’ouvrir les portes de métiers liés à la data science, à l’analyse de réseaux ou à la cybersécurité.
👉 Découvre comment transformer tes compétences Python en revenus ici : Comment gagner de l’argent avec Python
Quelles autres bibliothèques Python devrais-je apprendre avec NetworkX ?
Pour progresser efficacement, il est essentiel de combiner NetworkX avec d’autres bibliothèques puissantes de l’écosystème Python :
- Apprendre NumPy pour les calculs numériques et les matrices.
- Apprendre Pandas pour la manipulation de données.
- Apprendre NetworkX en Python pour approfondir ton analyse de graphes.
Ces outils se complètent parfaitement et t’aideront à devenir un vrai data scientist Python complet
Conclusion
Tu viens de découvrir 10 exercices corrigés en NetworkX qui vont te donner une bonne base pour manipuler des graphes en Python. Continue à expérimenter, ajoute des nœuds, crée des graphes complexes, et surtout, amuse-toi avec tes données !
Si cet article t’a plu, n’hésite pas à le partager, commenter, ou poser tes questions ici sur CoinDuDev. Ensemble, on devient meilleurs !