如何使用随机权重创建随机网络x图

ato*_*3ls 9 python numpy networkx

我试图创建一个随机networkx图,每个边具有一个随机权重(代表长度).

目前我正在使用图形生成器gnm_random_graph集中的函数:networkx

g=nx.gnm_random_graph(5,5)
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力添加随机权重.我的尝试是基于这个问题的答案.

for u,v,w in in g.edges(data=True):
     w = np.random.randint(0,10)
Run Code Online (Sandbox Code Playgroud)

我这样做,所以我可以探索并(希望)了解networkx库.

我的问题有两个部分:

1.出于示例目的,生成简单networkx图的最佳方法是什么?

2.为现有networkx图添加权重的最佳方法是什么?

Joe*_*oel 7

只是解决问题2(Q1非常依赖于背景)

你可以使用(我相信networkx 1.x和2.x):

import random
#code creating G here
for (u,v,w) in G.edges(data=True):
    w['weight'] = random.randint(0,10)
Run Code Online (Sandbox Code Playgroud)

变量w是一个字典,其键是所有不同的边缘属性.

或者在networkx 2.x中你也可以

for (u, v) in G.edges():
    G.edges[u,v]['weight'] = random.randint(0,10)
Run Code Online (Sandbox Code Playgroud)

或者在networkx 1.x中你可以做到

for (u, v) in G.edges():
    G.edge[u][v]['weight'] = random.randint(0,10)
Run Code Online (Sandbox Code Playgroud)