2 个具有正确形状的 CSR 矩阵的乘积

vku*_*vku 1 linear-algebra scipy

我需要将 2 个 csr 矩阵与形状 A : (385019, 72) B : (72, 385019) 相乘。我确实看到 A 的列数是 72,这正是 B 中的行数。然而,当我执行时,sparse.csr_matrix(A).multiply(sparse.csr_matrix(A))我发现ValueError: inconsistent shapes 我已经浏览过其他帖子,但还没有任何帮助我。 使用 Python 和 NumPy 的非常大的矩阵

Moh*_*ari 6

您正在寻找的乘法称为“点积”,在 python 中您可以按如下方式执行此操作

sparse.csr_matrix(A) * sparse.csr_matrix(B)
Run Code Online (Sandbox Code Playgroud)

但是,您在所描述的问题中使用的乘法sparse.csr_matrix(A).multiply(sparse.csr_matrix(A))称为“与另一个矩阵、向量或标量的逐点乘法”。这意味着如果 A 和 B 都是矩阵,则 A 的每个元素都将与 B 的每个元素相乘;在这种情况下,A 和 B 的大小必须相同。如果 B 是标量,则 A 的每个元素都将乘以 B。

  • 非常感谢莫辛:)这很有帮助。 (2认同)