python - 如何将两个 csr_matrix 合并为一个?

标签 python scipy sparse-matrix

我在使用 scipy.sparse.csr_matrix 时遇到问题:

例如:

a = csr_matrix([[1,2,3],[4,5,6]])
b = csr_matrix([[7,8,9],[10,11,12]])

如何将它们合并成

[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

我知道一种方法是先将它们转移到 numpy 数组中:

csr_matrix(numpy.vstack((a.toarray(),b.toarray())))

但当矩阵很大且稀疏时,它就不会工作,因为内存会耗尽。

那么有什么方法可以将它们合并到 csr_matrix 中吗?

如有任何答案,我们将不胜感激!

最佳答案

scipy.sparse有自己的stack-methods .您可以直接在稀疏矩阵上使用它们。

import scipy.sparse as sp

a = sp.csr_matrix([[1,2,3],[4,5,6]])
b = sp.csr_matrix([[7,8,9],[10,11,12]])
c = sp.vstack((a,b))  # NOT np.vstack

关于python - 如何将两个 csr_matrix 合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243283/

相关文章:

python - 加载具有自定义层的模型时 Keras 中的形状不兼容

python - PyCall 在 Julia 中找不到 scipy

python - OSX- "NumPy/SciPy requires Python 2.6 to Install"

python - 如何使用 Python 正确计算四分位距 (IQR)?

python 线性回归: dense vs sparse

python - Scipy 稀疏矩阵中的行划分

Python:全局变量、前缀为 "self."的变量、局部变量之间有什么区别?

python - 带参数的 Web2py Controller ?

Python pandas 数据清理

python - 在已经计算了沿该轴的 argmax 之后,沿稀疏矩阵的轴取最大值