Я создаю граф с некоторыми ребрами:
import networkx as nx
g = nx.Graph()
g.add_edge(1, 2)
g.add_edge(2, 6)
g.add_edge(3, 4)
g.add_edge(5, 6)
print(g.edges)
output-> (1, 2), (1, 5), (2, 6), (5, 6), (3, 4)
А затем получаю смежный A
, используя граф g
nx.convert_matrix.to_numpy_array(g)
Результат :
array([[0., 1., 1., 0., 0., 0.],
[1., 0., 0., 1., 0., 0.],
[1., 0., 0., 1., 0., 0.],
[0., 1., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1.],
[0., 0., 0., 0., 1., 0.]])
Вы можете увидеть, что соседние элементы не совпадают g
, если вы рассматриваете индексы соседних элементов следующим образом:
A : 1 2 3 4 5 6
—————————————
1 | 0 1 1 0 0 0
2 | 1 0 0 1 0 0
3 | 1 0 0 1 0 0
4 | 0 1 1 0 0 0
5 | 0 0 0 0 0 1
6 | 0 0 0 0 1 0
Например:
На A
значение индексов (1, 3) равно 1 , как обычно, что означает, что ребра (1, 3) существуют, но на самом деле нет!
Если я изменю индексы A
на это, как показано ниже:
A : 1 2 5 6 3 4
—————————————
1 | 0 1 1 0 0 0
2 | 1 0 0 1 0 0
5 | 1 0 0 1 0 0
6 | 0 1 1 0 0 0
3 | 0 0 0 0 0 1
4 | 0 0 0 0 1 0
, совпадение будет прямо между edges
и A
.
Мой вопрос
Как сделать так, чтобы индексы A
следовали нормальному порядку -> 1,2,3,4 ...
Заранее спасибо ~