2016-05-26 2 views
-1

Я пытаюсь закрепить края, которые имеют неправильные значения в моем графике, фактические значения, связанные с этими ребрами, хранятся за пределами networkx. Я планирую итерацию по всем узлам моего графика, чтобы сделать такую ​​обрезку (100 000 элементов).Итерация по краям в узле

import networkx as nx 
G=nx.Graph() 
G.add_node(1) 
G.add_node(2) 
G.add_node(3) 
G.add_edges_from([(1,2),(2,3)]) 
edges=G.get_edges_from_node(2) #(1,2),(2,3) 

Я не могу найти функцию для этого.

+0

Что вы подразумеваете под нерегулярными значениями? – RafaelC

+0

@ RafaelCardoso Что-то специфическое для моей проблемы, в моем случае края сохраняют значения (вне 'networkx'). Итак, если значения ребер, ведущие к узлу, выглядят как '[1,2,3,999]', тогда я бы обрезал последнее соединение. – Mikhail

+0

Можете ли вы указать образец ввода и образец вывода? Возможно, вы просто ищете 'G.edges (2)', но это не ясно. – Joel

ответ

1
import networkx as nx 
G=nx.Graph() 
G.add_node(1) 
G.add_node(2) 
G.add_node(3) 
G.add_edges_from([(1,2),(2,3)]) 

Вы можете перебрать все узлы в следующем порядке:

for n in G.node.items(): 
    print(n) 

(1, {}) 
(2, {}) 
(3, {}) 

Вы также можете добавить свои ценности, которые находятся за пределами графика, как атрибут края и просто итерацию по краям

G2=nx.Graph() 
G2.add_node(1) 
G2.add_node(2) 
G2.add_node(3) 
G2.add_edges_from([(1,2, {'value': 1}),(2,3, {'value': 2})]) 

for edge in G2.edges(data=True): 
    print(edge) 

(1, 2, {'value': 1}) 
(2, 3, {'value': 2}) 
Смежные вопросы