Je souhaite comparer des nœuds de différents bords dans le graphique. Comment puis-je obtenir les noeuds (n1 et n2) à partir du bord (n1, n2)?Comment puis-je obtenir des nœuds à partir du bord spécifique du réseau x?
1
A
Répondre
3
Une arête dans NetworkX est définie par ses nœuds, donc je ne suis pas vraiment sûr de ce que vous demandez ici. Un bord spécifique dans le graphique est juste un tuple de nœuds, avec une pondération optionnelle.
import networkx as nx
g = nx.Graph()
g.add_edge(1,2)
g.add_edge(2,3)
g.edges()
donne
[(1, 2), (2, 3)]
Comme vous pouvez le voir, la liste des arêtes fournit explicitement les noeuds de chaque bord.
Mise à jour: Est-ce que cela fait ce que vous voulez?
#!/usr/bin/python
import networkx as nx
import random
g = nx.Graph()
g.add_edges_from([(1,2),(2,3),(1,4),(2,5)])
random_edge = random.choice(g.edges())
print 'Randomly selected edge is:', random_edge
print 'Nodes are', random_edge[0], 'and', random_edge[1]
suppose que j'ai une liste de bord, l'un d'entre eux est peut-être bord (2,3) qui est le bord entre le noeud 2 et 3. Je veux que le programme, donnez-moi au hasard un bord de mes données, et aussi donnez-moi ses nœuds, comme ici me donne 2 et 3. – masti
@masti: J'ai mis à jour ma réponse. C'est ce que tu veux dire? –
oui, merci. En fait c'est la première partie de mon programme, je dois travailler avec ces nœuds plus tard. Donc je pensais qu'il pourrait y avoir une fonction à get_nodes, l'inverse de la fonction get_edge ... Mais c'est quand même assez bon! – masti