我怎样才能得到每个社区的直径

How can I get the diameter of each community

我正在尝试计算我在 jupyter 上的数据集(Zachary 的空手道俱乐部)中每个社区的直径。我创建了一个循环来迭代,但它给出了整个网络的直径而不是每个社区的直径

from igraph import *
import pandas as pd 
data = pd.read_csv('zachary.txt',sep =" ", header = None)
data_values = data.values
g = Graph()
new_data = data_values.tolist()
data_graph = g.Adjacency(new_data, mode = 'undirected')
s = data_graph.community_infomap()
print(s)
s_List = list(s)
print(s_List)
for ic in s_List:
    y = data_graph.diameter(ic)
    print(y)

我希望输出像“1,2,2”或“1,3,1”,但实际输出是“5,5,5”,这是整个社区的直径。

在取直径之前需要先考虑社区诱导的子图。我相信用这个替换你对 y 的肯定应该有效:

y = data_graph.subgraph(ic).diameter()