【发布时间】:2014-08-25 08:10:36
【问题描述】:
我目前想将一个大型稀疏矩阵(~1M x 200k)与其转置相乘。结果矩阵的值将是浮点数。
- 我尝试将矩阵加载到 scipy 的稀疏矩阵中,并将第一个矩阵的每一行与第二个矩阵相乘。乘法需要大约 2 小时才能完成。
实现这种乘法的有效方法是什么?因为我在计算中看到了一个模式。
- 矩阵大而稀疏。
- 矩阵与其转置的乘法。因此,生成的矩阵将是对称的。
我想知道哪些库可以更快地实现计算。它可以是 Python、R、C、C++ 或任何其他语言。
【问题讨论】:
-
你试过
matrix.dot(matrix.transpose())吗? -
@user2357112 使用 Scipy?是的.. 由于内存空间,它给出了分段错误。由于生成的矩阵很大,其中包含浮点值...
-
你能发布代码吗?你把数据放在什么格式? scipy.sparse.csr_matrix?
-
@Jblasco:不是重复的。将矩阵乘以其转置是一种特殊但常见的情况。例如。将向量乘以其转置得到其长度的平方。
标签: python c++ linear-algebra sparse-matrix matrix-multiplication