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图添加权重的最佳方法是什么?
只是解决问题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)