组合矩阵和稀疏矩阵

时间:2012-09-02 19:46:23

标签: python matrix numpy scipy sparse-matrix

如何将1列矩阵添加到稀疏矩阵,或者将稀疏matix添加到列矩阵(任一方式)?它不应该替换数据,只需将其加入一种数据类型。

稀疏矩阵:

>>print type(X)
>>print X.shape
<class 'scipy.sparse.csr.csr_matrix'>
(53, 6596)

要添加的列:

>>print type(Y)
>>print Y.shape
<class 'numpy.matrixlib.defmatrix.matrix'>
(53, 1)

你怎么能这样做?

1 个答案:

答案 0 :(得分:8)

来自文档,在我看来,您正在寻找hstack模块中的vstack / scipy.sparse

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy.sparse as ssp
>>> print ssp.hstack.__doc__

    Stack sparse matrices horizontally (column wise)

    Parameters
    ----------
    blocks
        sequence of sparse matrices with compatible shapes
    format : string
        sparse format of the result (e.g. "csr")
        by default an appropriate sparse matrix format is returned.
        This choice is subject to change.

    See Also
    --------
    vstack : stack sparse matrices vertically (row wise)

    Examples
    --------
    >>> from scipy.sparse import coo_matrix, vstack
    >>> A = coo_matrix([[1,2],[3,4]])
    >>> B = coo_matrix([[5],[6]])
    >>> hstack( [A,B] ).todense()
    matrix([[1, 2, 5],
            [3, 4, 6]])


>>>