给定两个列向量x,y:scipy.sparse.csc\u矩阵,其中len(x)==len(y)==N和max(x.nnz,y.nnz)==M,以及对称N×N矩阵a:scipy.sparse.csc\u矩阵,其中,对于所有列j,A[j].nnz=C,我需要计算x.T*A*y=∑∑ᵢ,ⱼx[I]*A[j][I]*y[j],最多M*max(M,C)步数,这是可以实现的具体如下:
下面是使用scipy库的朴素Python代码:
(x.T).dot(A).dot(y)[0, 0]
单独计算:
这总共需要O(M*N)步,这对于大N来说是一个主要的减速
目前没有回答
相关问题 更多 >
编程相关推荐