Networkx:NetworkXException:节点列表包含stochastic_block_model的重复项

我是Networkx(2.4版)的新手,对于尝试添加节点列表时遇到的stochastic_block_model错误,我有些困惑。我正在尝试使用此代码为网络中的每个块设置不同的颜色属性:

import networkx as nx
N_p = 10
N_n = 10
N_0 = 30
sizes = [N_p,N_n,N_0]
probs = [[0.25,0.05,0.02],[0.05,0.35,0.07],[0.02,0.07,0.40]]
nodelist = ['blue' for i in range(N_p)]
nodelist.extend(['red' for i in range(N_n)])
nodelist.extend(['green' for i in range(N_0)])
G = nx.stochastic_block_model(sizes,probs,nodelist=nodelist,seed=0,directed=1)

但是我收到以下错误消息:

...
/opt/anaconda3/lib/python3.7/site-packages/networkx/generators/community.py in stochastic_block_model(sizes,p,nodelist,seed,directed,selfloops,sparse)
    576             raise nx.NetworkXException("'nodelist' and 'sizes' do not match.")
    577         if len(nodelist) != len(set(nodelist)):
--> 578             raise nx.NetworkXException("nodelist contains duplicate.")
    579     else:
    580         nodelist = range(0,sum(sizes))

NetworkXException: nodelist contains duplicate.

我在做什么错了?

hanpangzi09 回答:Networkx:NetworkXException:节点列表包含stochastic_block_model的重复项

错误仅仅是-节点列表包含重复项:

>>> nodelist
['blue'*10,'red'*10,'green'*30]

与您的文档链接相同:

  

引发NetworkXError –

     

如果概率不在[0,1]中。如果   概率矩阵不是正方形(有向情况)。如果概率   矩阵不是对称的(无向情况)。如果尺寸列表没有   匹配节点列表或概率矩阵。 如果节点列表包含   重复。

要解决此问题,请不要使用节点列表,或执行以下操作:

nodelist = [f'blue_{i}' for i in range(N_p)]
nodelist.extend([f'red_{i}' for i in range(N_n)])
nodelist.extend([f'green_{i}' for i in range(N_0)])
本文链接:https://www.f2er.com/3030712.html

大家都在问