i want concatenate 2 csr_matrix, each shape=(1,n) . i know should use scipy.sparse.vstack : from scipy.sparse import csr_matrix,vstack c1 = csr_matrix([[1, 2]]) c2 = csr_matrix([[3, 4]]) print c1.shape,c2.shape print vstack([c1, c2], format='csr') #prints: (1, 2) (1, 2) (0, 0) 1 (0, 1) 2 (1, 0) 3 (1, 1) 4 however, code fails: from scipy.sparse import csr_matrix,vstack import numpy np y_train = np.array([1, 0, 1, 0, 1, 0]) x_train = csr_matrix([[1, 1], [-1, 1], [1, 0], [-1, 0], [1, -1], [-1, -1]]) c0 = x_train[y_train == 0].mean(axis=0) c1 = x_train[y_train == 1].mean(axis=0) print c0.shape, c1.shape #prints (1l, 2l) (1l, 2l) print c0,c1 #prints [[-1. 0.]] [[ 1. 0.]] print vstack([c0,c1], format='csr') the last line raises exception - file "c:\anaconda\lib\site-packages\scipy\sparse\construct.py", line 484, in vstack return bmat([[b] b in blocks], format=format, dtype=dtype) file "c:\anaconda\li...
Comments
Post a Comment