【发布时间】:2021-12-07 00:52:23
【问题描述】:
我有一个 10001 行 + 10001 列(有很多 0)的稀疏矩阵,
我正在尝试提高这个稀疏矩阵的能力
即
A = [[1,1],[1,0]]
AS = sparse.csr_matrix(A)
AS
def matrixMul(AS, n):
if(n <= 1):
return AS
else:
return np.matmul(matrixMul(AS, n-1), AS)
matrixMul(AS, 10)
如果我将 AS 提高到 2 的幂,预期的结果应该是 [[2, 1] [1, 1]]
我想找 AS ^ 10
我应该调用什么函数?我已经尝试了上面的代码,但收到了这个错误。
谢谢。
ValueError Traceback(最近调用 最后)在() 9 返回 np.matmul(matrixMul(AS, n-1), AS) 10 ---> 11 矩阵Mul(AS, 10)
matrixMul(AS, n) 中的 8 帧 7 返回 AS 8 其他: ----> 9 返回 np.matmul(matrixMul(AS, n-1), AS) 10 11 矩阵Mul(AS, 10)
ValueError: matmul: 输入操作数 0 没有足够的维度 (有 0,带有签名 (n?,k),(k,m?)->(n?,m?) 的 gufunc 核心需要 1)
【问题讨论】:
-
错误表明在递归的某个时刻
matmul的一个参数是 0d,即一个标量,或者可能是一个单元素对象 dtype 数组。使用小得多的n测试matrixMul,然后再使用完整的10。
标签: python sparse-matrix matrix-multiplication