为了账号安全,请及时绑定邮箱和手机立即绑定

在python中生成具有规定度分布的网络(图)

在python中生成具有规定度分布的网络(图)

汪汪一只猫 2023-10-26 15:17:07
我的问题是如何使用 numpy 和 networkX 在 python 中生成随机网络图(其他模块也可以工作,但目前我专注于这两个),其中包含 1000 个节点和给定的度数分布,如图所示,其中 k 是节点数边,P(k) 是节点与一定数量的边连接的概率。多谢。学位分布p_k = [0, .1, .35, .25, .2, .1, .04, .01, .02, .02, .01] k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

这是 100 个节点的实现。

请注意,我将您的原始概率修改为总和为 1。


import numpy as np

import networkx as nx

import matplotlib.pyplot as plt


p_k = [0, .01, .35, .25, .2, .1, .04, .01, .01, .02, .01]

k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


expected_degree_sequence = np.random.choice(

  k, 

  100,

  p = p_k

)


G = nx.configuration_model(expected_degree_sequence)

nx.draw(G)

plt.show()

https://img1.sycdn.imooc.com/653a128c0001c6d204400296.jpg

查看完整回答
反对 回复 2023-10-26
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信