在我的图中,节点具有一个属性,告诉我节点的类型可以是1或2。
如果我使用 NetworkX 中的 nx.average_neighbor_degree(G) 函数,将会得到以下结果。
G=nx.Graph()
G.add_node('N1',n_type=1)
G.add_node('N2',n_type=1)
G.add_node('N3',n_type=2)
G.add_edges_from([('N3','N1'),('N3','N2')])
如果我使用 NetworkX 中的 nx.average_neighbor_degree(G) 函数,将会得到以下结果。
{'N1': 2.0, 'N2': 2.0, 'N3': 1.0}
然而,我希望获得仅考虑一种节点类型的平均邻居度。例如,当该属性取值为1时的平均邻居度应为:
{'N1': 0.0, 'N2': 0.0, 'N3': 1.0}
由于节点N3是唯一具有属性n_type=1的邻居,且其邻居的平均度数为Degree(N1)+Degree(N2)/2 = 1+1/2 = 1
您有什么建议吗?