configuration_model()在Networkx 1.10中获得了关键字参数'create_using'的多个值

时间:2015-11-03 15:56:06

标签: python networkx

我正在使用带有python 2.7的networkx 1.9,并决定更新到最新的1.10版本。 当使用二分图生成器函数configuration_model时,我发现我之前使用的是什么:

import networkx as nx
from networkx.algorithms import bipartite
import networkx.algorithms.bipartite as bipartite
aseq=[1 2 1]
bseq=[2 1 1]
G =bipartite_configuration_model(aseq,bseq, create_using=None, seed=None)

新版本:

G =configuration_model(aseq, bseq, create_using=None, seed=None)

configuration_model() got multiple values for keyword argument 'create_using'

不再起作用了。知道什么是create_using =应该是什么?我读了源文件,看不到需要的东西!

2 个答案:

答案 0 :(得分:1)

我不确定版本之间的区别,但旧版本的小改动解决了这个问题。我对您的代码所做的更改是:

  

aseq和bseq的定义,因为它们给出了错误:

aseq=[1, 2, 1] # with commas between degree sequences
bseq=[2, 1, 1]
  

调用configuration_model函数

G = bipartite.configuration_model(aseq,bseq, create_using=None, seed=None) # you had an underscore instead of a '.'

然后使用简单的color_map来区分属于每个部分的节点,如下所示:

color_map = []
for n in G.nodes():
    if G.node[n]['bipartite'] == 0:
        color_map.append('blue')
    else: color_map.append('green')

绘制图表:

enter image description here

对于create_using参数,您可以查看documentation。它表示您可以使用它来确定返回图表的类型。默认情况下,它是具有平行边的多图。

答案 1 :(得分:1)

bipartite_configuration_modelconfiguration_model是不同的命令。您的新代码调用configuration_model,其中只有一个节点分区。

它将aseq解释为度数分布。然后它将第二个参数解释为create_using变量(如果第二个参数是可选的,可以通过在函数调用中给出第二个参数,或者在函数调用中使用关键字来指定{{3} })。所以它看作create_using=bseq。然后你明确地为create_using传递了一个额外的值,因此它有多个值。你显然不是故意这样做,因此错误。

我相信阿卜杜拉的答案会告诉你你真正想做的事情。

补充:我怀疑你是否真的想要同时进行这两个电话。

from networkx.algorithms import bipartite
import networkx.algorithms.bipartite as bipartite