python(scipy):调整稀疏矩阵的大小

时间:2012-03-08 17:10:42

标签: python scipy sparse-matrix

我在调整矩阵大小时遇到​​了麻烦 - 似乎是set_shape函数 没有效果:

>>> M
<14x3562 sparse matrix of type '<type 'numpy.float32'>'
   with 6136 stored elements in LInked List format>
>>> new_shape = (15,3562)
>>> M.set_shape(new_shape)
>>> M
<14x3562 sparse matrix of type '<type 'numpy.float32'>'
   with 6136 stored elements in LInked List format>

其他人遇到过这个?

我也尝试过这样做,即

>>> M._shape = new_shape
>>> M.data = np.concatenate(M.data, np.empty((0,0), dtype=np.float32))

但是会引发错误:

*** TypeError: only length-1 arrays can be converted to Python scalars

>>> M.data = np.concatenate(M.data, [])
*** TypeError: an integer is required

有关信息:

  • Python 2.6.5(r265:79063,2010年4月16日,13:57:41)
  • scipy 0.11.0.dev-03f9e4a

1 个答案:

答案 0 :(得分:5)

如果你只想在最后添加一行零:

>>> M = sp.lil_matrix((14, 3562))
>>> sp.vstack([M, sp.lil_matrix((1, 3562))])
<15x3562 sparse matrix of type '<type 'numpy.float64'>'
        with 0 stored elements in COOrdinate format>