Я хочу получить границу между двумя узлами в графе networkx. В частности, я хочу получить некоторые данные, связанные с этим краем. Я априори знаю, что эти два узла связаны. Есть ли функция для этого?
Вопрос
Как получить данные для границы между двумя узлами?
- Что ты конкретно имеешь ввиду? Нарисовать ребро между двумя определенными узлами, которые, как вы знаете, связаны, или искать узлы, у которых есть ребро, а затем вычислять что-то на основе других атрибутов, которыми обладают эти узлы? Reti43 09.02.2016
- @Reti43 Reti43 Я имею в виду, что если у вас есть два узла, u и v, получите ребро, которое их соединяет. becko 09.02.2016
- Что-то вроде get_edge_data()? Также есть edges(), но он возвращает список подключенных узлов. Reti43 09.02.2016
Ответы
Ответ 1 · рейтинг 15 · Joel
Данные края хранятся в словаре. Чтобы получить доступ к этому словарю, используйте get_edge_data().
import networkx as nx
G=nx.Graph()
G.add_edge(1,2, weight=5)
G.get_edge_data(1,2)
> {'weight': 5}
Если вы хотите перебрать все ребра, вы можете использовать G.edges(data=True)
H = nx.Graph()
H.add_edge(2, 3, color = 'red')
H.add_edge(1, 2, weight = 4)
for u,v,data in H.edges(data=True):
print(u, v, data)
> 1 2 {'weight': 4}
> 2 3 {'color': 'red'}
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- MIT 6.00.1x Обзор
- Просеивание данных: понимание методов выбора признаков для повышения эффективности модели
- Краткое руководство по развертыванию вашего веб-приложения Python на Google App Engine
- Базовое обнаружение улыбки с использованием OpenCV и DLIB
- NetworkX против Scipy все алгоритмы кратчайшего пути
- KeyError при записи значений NumPy в GEXF с помощью NetworkX