I'm having trouble resizing a matrix - the set_shape
function seems to have no effect:
我在调整矩阵大小时遇到了麻烦——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>
Anyone else come across this?
有人遇到过这个吗?
I also tried doing this by hand, i.e.
我也试着用手做这个,也就是。
>>> M._shape = new_shape
>>> M.data = np.concatenate(M.data, np.empty((0,0), dtype=np.float32))
but that throws up an error:
但这就产生了一个错误:
*** TypeError: only length-1 arrays can be converted to Python scalars
or
或
>>> M.data = np.concatenate(M.data, [])
*** TypeError: an integer is required
For info:
信息:
- Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
- Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
- scipy 0.11.0.dev-03f9e4a
- scipy 0.11.0.dev-03f9e4a
1 个解决方案
#1
5
If you just want to add a row of zeros at the end:
如果你只是想在最后添加一行0:
>>> 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>
#1
5
If you just want to add a row of zeros at the end:
如果你只是想在最后添加一行0:
>>> 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>