使用networkx中的pagerank函数,计算出来的数值和直接基于矩阵计算出来的数值有一点点差别,但相对大小还是一样的
import networkx as nx
import matplotlib.pyplot as plt
# 创建有向图
G = nx.DiGraph()
# 添加带权重有向边
G.add_weighted_edges_from([(1, 3, 1), (2, 1, 1), (2, 3, 1), (3, 1, 1), (5, 2, 1)])
# 添加孤立节点
G.add_node(4)
# 计算pagerank值
pagerank_list = nx.pagerank(G, alpha=0.85)
print("pagerank 值是:", pagerank_list)
nx.draw(G, with_labels=True, font_weight='bold')
plt.show()
pagerank 值是: {1: 0.43042160902192195, 3: 0.43042160902192195, 2: 0.06686758646711714, 5: 0.03614459774451953, 4: 0.03614459774451953}
展开
作者回复: 赞一下实践精神,确实我也发现了这点,估计是具体实现上有所区别。