首页 > 解决方案 > 如何在python中实现稀疏矩阵的幂迭代法

问题描述

我正在尝试使用稀疏矩阵实现 10 次迭代的幂迭代方法,以计算 10 次迭代后的特征向量向量及其运行时间。

在这种情况下,稀疏矩阵 = HS 并且初始页面排名向量 = pg_vector,其中webpage_count = 10001。

%%time

pg_vector = np.array([1/webpage_count]*webpage_count)

for i in range(10):
    pg_vector1 = np.dot(HS, pg_vector)

    # calculate the norm
    pg_vector1_norm = np.linalg.norm(pg_vector1)

    # re normalize the vector
    pg_vector = pg_vector1 / pg_vector1_norm

print(pg_vector)

HS如下:

<10001x10001 sparse matrix of type '<class 'numpy.float64'>'
    with 282137 stored elements in Compressed Sparse Row format>

pg_vector 如下,10001 行×1 列。

array([9.9990001e-05, 9.9990001e-05, 9.9990001e-05, ..., 9.9990001e-05,
       9.9990001e-05, 9.9990001e-05])

我在 jupyter notebook 中尝试了以下代码,但是内核必须重新启动,或者运行时间太长,我无法从中获得任何输出。如果有人可以帮助解决这个问题,将不胜感激!

标签: pythoniterationsparse-matrix

解决方案


推荐阅读