今天我发现numpy中的array拼接时dense矩阵和sparse矩阵拼接使用的形式是不一样的,测试如下
普通矩阵拼接
import numpy as np
aa =np.random.randn(4,3)
bb =np.ones((4,3))
cc=np.c_[aa,bb]
cc.shape
结果如下
sparse矩阵拼接
from scipy.sparse import *
row = [1,1,1,2,2,2]#行索引
col = [0,1,2,0,1,2]#列索引
data1= [2,11,1,1,1,0]#对应值
data2= [200,100,1010,-11,10,11]
t1 = csr_matrix((data1,(row,col)),shape=(4,3))
t2 = csr_matrix((data2,(row,col)),shape=(4,3))
print(t1.toarray())
print(t2.toarray())
tt = np.c_[t1,t2]
tt.shape
结果如下
合理的操作如下
from scipy.sparse import hstack
ttt=hstack((t1,t2))
ttt.toarray()