NetworkX est un package Python permettant de travailler avec des graphiques.
J'ai récemment appris comment obtenir d'autres nœuds liés à un nœud particulier dans le graphe directionnel NetworkX DiGraph
, je vais donc l'écrire pour plus tard.
Le graphe supposé valide ressemble à ceci.
En se concentrant sur le nœud C, B est le parent de C et D est l'enfant de C. De plus, A et B sont des ancêtres de C, et D et E sont des descendants de C.
Tout d'abord, importons NetworkX et créons un graphe directionnel vide.
>>> import networkx as nx
>>> g = nx.DiGraph()
Ensuite, créez le graphique dans la figure ci-dessus avec ʻadd_path`. Lorsque vous créez un chemin, il semble que vous puissiez créer un nœud sans l'ajouter explicitement.
>>> g.add_path(["A","B","C","D","E"])
>>> g.nodes()
['E', 'C', 'D', 'A', 'B']
Maintenant, pour obtenir le parent et l'enfant de C, utilisez les méthodes «prédécesseurs» et «successeurs» du graphe g. Le résultat est renvoyé sous forme de «liste», car il peut y avoir plusieurs parents et enfants chacun.
>>> g.predecessors("C")
['B']
>>> g.successors("C")
['D']
D'autre part, pour obtenir les ancêtres et les descendants de C, utilisez les fonctions descendants
et ʻansstors`. Le résultat est renvoyé avec «set».
>>> nx.descendants(g, "C")
{'D', 'E'}
>>> nx.ancestors(g, "C")
{'A', 'B'}
Notez que pour les parents et les enfants, la méthode renvoie le résultat sous forme de «liste», pour les ancêtres et les descendants, la fonction est utilisée et le résultat est renvoyé sous la forme «set».
Recommended Posts