python - 如何在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 中尝试了以下代码,但是内核必须重新启动,或者运行时间太长,我无法从中获得任何输出。如果有人可以帮助解决这个问题,将不胜感激!
解决方案
推荐阅读
- javascript - AJAX 和 PHP 响应给出“SyntaxError:JSON 输入意外结束”
- sas - 在 Stata 中进行加权热卡插补的简单方法?
- apache-spark - 从 spark 数据框中只保留一条记录。不需要明确的记录
- c# - 冒泡排序程序无法正常工作。
- java - 无法让更改侦听器与滑块一起使用
- python-3.x - 在 OptionMenu 的类内的函数之间传递变量
- python - Caffe 卷积和 Tensorflow 输出之间差异很小的原因可能是什么?
- tableau-api - 显示个人与团体的表现
- c++ - 在 C++ 中使用 OpenSSL 加密 AES 中的字符串
- java - 在java中计算仅包含字母的字符串中的单词