python - 使用 igraph python 查找图的巨型组件的直径和平均最短路径长度
问题描述
我想计算图形巨型组件的平均最短路径长度和直径。这些文件以 .mat 格式表示。是否有任何内置函数可以这样做?
data = loadmat("filename.mat")
data=coo_matrix(data.get('A'))
graph= igraph.Graph(zip(data.row.tolist(), data.col.tolist()))
解决方案
巨型组件的直径
根据这个答案,我们可以找到具有以下功能的巨型组件。
def giant_component(graph):
"""Compute giant component.
Returns:
The giant component of `graph` as an `igraph.Graph`.
"""
vc = graph.components()
vc_sizes = vc.sizes()
return vc.subgraph(vc_sizes.index(max(vc_sizes)))
它的直径可以被找到giant_component(graph).diameter()
。
平均最短路径
该Graph.shortest_paths
函数将返回一个包含所有最短路径长度的矩阵,然后您可以计算其平均值。
np.mean(graph.shortest_paths())
推荐阅读
- bash - 剪切命令的问题
- python - 在数据框中,如何根据另一列中的条件在另一列中写入字符串
- python - 有没有办法减少这个问题的嵌套 if/elif 语句的数量?
- json - 如何在每个控制器基础上设置 json 序列化程序选项(不是在启动时全局设置)?
- reactjs - 状态上不存在属性 - 使用带有 TypeScript 的 React Router Hooks
- c# - 它在 catch 下方的 catch 块中有错误(异常)
- maven - Jenkins Pipeline:使用 Maven docker 映像找不到 docker
- r - 如何在非常大的数据集中获得更有效的行数和 uniqueN
- amazon-web-services - 如何使用 CloudFromation 更新单个 API 网关由多个服务组成
- pyspark - 如何在使用爆炸功能时重命名 Spark 数据框中的列