为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中连接两个矩阵?

如何在Python中连接两个矩阵?

白板的微信 2021-03-12 10:07:43
我有两个csr_matrix,uniFeature和biFeature。我想要一个新的矩阵Feature = [uniFeature, biFeature]。但是,如果我以这种方式直接连接它们,则会出现一个错误,指出矩阵Feature是一个列表。如何实现矩阵级联并仍然获得相同类型的矩阵,即a 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_
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

该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]])


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号