我正在尝试创建一个随机网络x图,每条边具有一个随机权重(代表长度)。
目前我正在使用networkx
graph generators集中的gnm_random_graph
函数:
g=nx.gnm_random_graph(5,5)
但是,我正在努力添加随机权重。我的尝试基于this question的答案。
for u,v,w in in g.edges(data=True):
w = np.random.randint(0,10)
我正在这样做,所以我可以探索并(希望)了解networkx库。
我的问题分为两部分:
1。出于示例目的,生成简单networkx图的最佳方法是什么?
2。向现有networkx图表添加权重的最佳方法是什么?
答案 0 :(得分:6)
只是解决问题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)
变量w
是一个字典,其键是所有不同的边缘属性。
或者在networkx 2.x中你可以做
for (u, v) in G.edges():
G.edges[u,v]['weight'] = random.randint(0,10)
或在networkx 1.x中你可以做到
for (u, v) in G.edges():
G.edge[u][v]['weight'] = random.randint(0,10)