Log*_*ang 7 python concatenation matrix scipy
我有两个csr_matrix,uniFeature而且biFeature.
我想要一个新的矩阵Feature = [uniFeature, biFeature].但是,如果我以这种方式直接连接它们,则会出现一个错误,表明矩阵Feature是一个列表.如何实现矩阵连接并仍然获得相同类型的矩阵,即csr_matrix?
如果我在连接后执行此操作它不起作用:Feature = csr_matrix(Feature)
它给出错误:
Traceback (most recent call last):
File "yelpfilter.py", line 91, in <module>
Feature = csr_matrix(Feature)
File "c:\python27\lib\site-packages\scipy\sparse\compressed.py", line 66, in __init__
self._set_self( self.__class__(coo_matrix(arg1, dtype=dtype)) )
File "c:\python27\lib\site-packages\scipy\sparse\coo.py", line 185, in __init__
self.row, self.col = M.nonzero()
TypeError: __nonzero__ should return bool or int, returned numpy.bool_
Run Code Online (Sandbox Code Playgroud)
War*_*ser 17
该scipy.sparse模块包括功能hstack和vstack.
例如:
In [44]: import scipy.sparse as sp
In [45]: c1 = sp.csr_matrix([[0,0,1,0],
...: [2,0,0,0],
...: [0,0,0,0]])
In [46]: c2 = sp.csr_matrix([[0,3,4,0],
...: [0,0,0,5],
...: [6,7,0,8]])
In [47]: h = sp.hstack((c1, c2), format='csr')
In [48]: h
Out[48]:
<3x8 sparse matrix of type '<type 'numpy.int64'>'
with 8 stored elements in Compressed Sparse Row format>
In [49]: h.A
Out[49]:
array([[0, 0, 1, 0, 0, 3, 4, 0],
[2, 0, 0, 0, 0, 0, 0, 5],
[0, 0, 0, 0, 6, 7, 0, 8]])
In [50]: v = sp.vstack((c1, c2), format='csr')
In [51]: v
Out[51]:
<6x4 sparse matrix of type '<type 'numpy.int64'>'
with 8 stored elements in Compressed Sparse Row format>
In [52]: v.A
Out[52]:
array([[0, 0, 1, 0],
[2, 0, 0, 0],
[0, 0, 0, 0],
[0, 3, 4, 0],
[0, 0, 0, 5],
[6, 7, 0, 8]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9642 次 |
| 最近记录: |