2015-05-26 4 views
1

Как сделать scipy разреженную матрицу из списка списков с целыми числами (или строками)?Scipy разреженная матрица из списка списка с целыми числами

[[1,2,3], 
[1], 
[1,4,5]] 

должны стать:

[[1, 1, 1, 0, 0], 
[1, 0, 0, 0, 0], 
[1, 0, 0, 1, 1]] 

Но затем в сжатом формате разреженной SciPy в?

+0

python имеет нулевое индексирование. у вас действительно есть это так, или вы можете начать с 0? – Moj

+0

В действительности у меня есть слова/предложения, которые, как я понял, я могу превратить в целые числа, если это поможет. Этот метод начнется с нулей. – PascalVKooten

+0

, так что вы также заранее знаете форму матрицы? – Moj

ответ

2

Я предполагаю, что вы хотите иметь матрицу 5 на 5 в конце. также индексы начинаются с 0.

In [18]:import scipy.sparse as sp 


In [20]: a = [[0,1,2],[0],[0,3,4]] 
In [31]: m = sp.lil_matrix((5,5), dtype=int) 

In [32]: for row_index, col_indices in enumerate(a): 
    m[row_index, col_indices] = 1 
    ....:  

In [33]: m.toarray() 
Out[33]: 
array([[1, 1, 1, 0, 0], 
     [1, 0, 0, 0, 0], 
     [1, 0, 0, 1, 1], 
     [0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0]])