我正在尝试在jupyter上计算我的数据集(扎卡里的空手道俱乐部)中每个社区的直径。我创建了一个循环来遍历,但是它给了我整个网络而不是每个社区的直径
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”,这是整个社区的直径。
答案 0 :(得分:0)
在获取直径之前,您需要首先考虑由社区引起的子图。我相信以此取代您肯定的y应该可以:
y = data_graph.subgraph(ic).diameter()