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

时间:2015-08-04 08:17:49

标签: python numpy networkx

我正在尝试创建一个随机网络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图表添加权重的最佳方法是什么?

1 个答案:

答案 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)