Возможно несколько вариантов, как это сделать. Здесь я просто делаю список всех взвешенных ребер со случайным весом, используя itertools
. Затем я использую add_weighted_edges_from
для создания ориентированного графа. Так что это не слишком долго, я использую только 3 узла.
import networkx as nx
import itertools
import random
G = nx.DiGraph()
weighted_edge_list = [(u,v,random.random()) for u,v in itertools.permutations(range(3),2)]
G.add_weighted_edges_from(weighted_edge_list)
G.edges(data=True)
> OutEdgeDataView([(0, 1, {'weight': 0.025851202944826346}), (0, 2, {'weight': 0.8067025754602839}), (1, 0, {'weight': 0.7729736390607577}), (1, 2, {'weight': 0.8724493159416196}), (2, 0, {'weight': 0.9049870220916731}), (2, 1, {'weight': 0.9636865700934618})])