首页 > 解决方案 > 通过python生成具有幂律度分布的无标度网络

问题描述

我编写此代码以生成具有幂律度分布的无标度网络。

import networkx as nx
import random
N = 1000
exponent = 2.2
test = [int(random.paretovariate(exponent-1)) for i in range(N)]
graph = nx.configuration_model(test)
print("number of self-loops : ",  graph.number_of_selfloops())

但我面临这个错误:

AttributeError:“MultiGraph”对象没有属性“number_of_selfloops”

我不明白问题是什么,我该如何解决。有没有其他方法可以用networkX生成这样的网络?(我不希望删除自循环和多链接)

标签: pythonnetworkxpower-law

解决方案


如该函数的文档中所述,configuration_model该函数返回 a MultiGraph,它没有 method number_of_selfloops,但您仍然可以使用该nx.number_of_selfloops方法,该方法也适用于MultiGraph(NetworkX 更改了他们希望如何调用此类方法)或简单地创建一个常用图与non_multi_graph = nx.Graph(graph).


推荐阅读