我正在尝试做一些非常简单的事情,但是被Python中关于稀疏矩阵和向量的大量信息弄糊涂了。你知道吗
我想创建两个向量,x和y,一个长度为5,一个长度为6,是稀疏的。然后我想在每个坐标中设置一个坐标。然后我想创建一个矩阵a,sparse,是5x6,加上x和y之间的外积
这是我试过的,它在很多方面都出错了。你知道吗
from scipy import sparse;
import numpy as np;
import scipy.sparse.linalg as ssl;
x = sparse.bsr_matrix(np.zeros(5));
x[1] = 1;
y = sparse.bsr_matrix(np.zeros(6));
y[1] = 2;
A = sparse.coo_matrix(5, 6);
A = A + np.outer(x,y.transpose())
svdresult = ssl.svds(A,1);
首先,您应该在构造稀疏矩阵之前确定要存储在稀疏矩阵中的数据。否则应该使用sparse.csc_matrix或sparse.csr_matrix。然后您可以像这样分配或更改数据:
x[0, 1] = 1
第二,向量x和y的外积等价于
x.transpose() * y
。以下是工作代码:
输出:
相关问题 更多 >
编程相关推荐