Получить матрицы смежности networkx.MultiDiGraphPython

Программы на Python
Ответить
Anonymous
 Получить матрицы смежности networkx.MultiDiGraph

Сообщение Anonymous »

Я хочу получить матрицы смежности networkx.MultiDiGraph. Мой код выглядит следующим образом:

Код: Выделить всё

import numpy as np
import networkx as nx
np.random.seed(123)

n_samples = 10

uv = [
(1, 2),
(2, 3),
(3, 4),
(4, 5),
(5, 6)
]

G = nx.MultiDiGraph()

for u, v in uv:
weights = np.random.uniform(0, 1, size=n_samples)
G.add_edges_from([(u, v, dict(sample_id=s+1, weight=weights[s])) for s in range(n_samples)])

A = nx.to_numpy_array(G=G, nodelist=list(G.nodes))
Как указано в документации, по умолчанию nx.to_numpy_array() для этого типа графа заключается в суммировании весов нескольких ребер.
Поэтому выходные данные выглядеть следующим образом:

Код: Выделить всё

[[0.         5.44199353 0.         0.         0.         0.        ]
[0.         0.         4.12783997 0.         0.         0.        ]
[0.         0.         0.         5.37945594 0.         0.        ]
[0.         0.         0.         0.         4.95418265 0.        ]
[0.         0.         0.         0.         0.         5.18942126]
[0.         0.         0.         0.         0.         0.        ]]
Я хотел бы получить 10 матриц смежности, по одной для каждого s. Желаемый результат должен выглядеть следующим образом:

Код: Выделить всё

print(A.shape)
>> (6, 6, 10)
Пожалуйста, посоветуйте

Подробнее здесь: https://stackoverflow.com/questions/793 ... ltidigraph
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»