【发布时间】:2013-05-26 05:53:12
【问题描述】:
scipy 稀疏矩阵类型和普通 numpy 矩阵类型之间似乎存在一些差异
import scipy.sparse as sp
A = sp.dia_matrix(tri(3,4))
vec = array([1,2,3,4])
print A * vec #array([ 1., 3., 6.])
print A * (mat(vec).T) #matrix([[ 1.],
# [ 3.],
# [ 6.]])
print A.todense() * vec #ValueError: matrices are not aligned
print A.todense() * (mat(vec).T) #matrix([[ 1.],
# [ 3.],
# [ 6.]])
为什么稀疏矩阵可以将数组解释为列向量,而普通矩阵却不能?
【问题讨论】:
-
稀疏矩阵不是 numpy 矩阵的子类。它甚至不是
ndarray。
标签: python numpy scipy sparse-matrix matrix-multiplication