Scipy稀疏矩阵乘法

Ant*_*vic 8 python numpy matrix scipy sparse-matrix

我有使用numpy数组的矩阵乘法矩阵示例:

import numpy as np
m = np.array([[1,2,3],[4,5,6],[7,8,9]])
c = np.array([0,1,2])
m * c
array([[ 0,  2,  6],
       [ 0,  5, 12],
       [ 0,  8, 18]])
Run Code Online (Sandbox Code Playgroud)

如果m是scipy稀疏CSR矩阵,我怎么能做同样的事情?这会导致尺寸不匹配:

sp.sparse.csr_matrix(m)*sp.sparse.csr_matrix(c)
Run Code Online (Sandbox Code Playgroud)

Ell*_*iot 11

您可以调用multiply方法csr_matrix来执行逐点乘法.

sparse.csr_matrix(m).multiply(sparse.csr_matrix(c)).todense()

# matrix([[ 0,  2,  6],
#         [ 0,  5, 12],
#         [ 0,  8, 18]], dtype=int64)
Run Code Online (Sandbox Code Playgroud)

  • 尼斯.另外,如果你想要一个numpy`数组`,你可以使用`.toarray()`.我之前在使用`.todense()`时已经被烧了,它给出了一个numpy`矩阵'. (3认同)