python - 在python中生成具有规定度分布的网络(图)
问题描述
我的问题是如何使用 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]
解决方案
这是 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()
推荐阅读
- c# - LDAP 在不同的 OU 中创建两个用户名相同的用户
- android - Android Studio 构建无法删除路径
- javascript - 在javascript中选择一些元素怎么样?
- web-services - 文档/文字或 RPC/编码接口
- rxjs - 哪种情况是“点击”运算符的适当用法?
- java - 从 Jar 依赖项中运行应用程序
- package.json - 删除重复包以及 yarn install --pure-lockfile 和 yarn install freeze-lockfile 之间的区别
- matlab - 在 MATLAB 中对块对角矩阵的高效运算
- python - python中的正则表达式(123/4)
- regex - 修改正则表达式以在带有或不带有 http 前缀的字符串中查找 URL