NetworkX 中的 pagerank、pagerank_numpy 和 pagerank_scipy 之间有什么区别?

What are the differences among pagerank, pagerank_numpy and pagerank_scipy in NetworkX?

我检查了描述 pagerank, pagerank_numpypagerank_scipy 来自 NetworkX documentation。我看不出区别。

pagerank(G, alpha=0.85, personalization=None, max_iter=100, tol=1e-06, nstart=None, weight='weight', dangling=None)

pagerank_numpy(G, alpha=0.85, personalization=None, weight='weight', dangling=None)

pagerank_scipy(G, alpha=0.85, personalization=None, max_iter=100, tol=1e-06, weight='weight', dangling=None)

它们有什么区别?

它们都计算相同的东西,但计算最大 eigenvalue/eigenvector(网页排名分数)的方法略有不同。

  • pagerank 是 pure-Python 实现
  • pagerank_numpy使用numpy
  • 的密集线性代数子包
  • pagerank_scipy使用scipy
  • 的稀疏线性代数子包

pagerank_scipy 实施应该是最快的,并且对大图使用最少的内存。