2014-02-12 2 views
0

Почему следующий код не задает элементы строки в lil_matrix?Настройка элементов lil_matrix

for i in range(k): 
     val = random.uniform(0, math.sqrt(5.0/float(k))) 
     print val 
     q[movie_id, i] = val 
    print repr(q.getrow(movie_id)) 

Выход

0.409419926697 
0.0738510208877 
0.389643102199 
0.196197313266 
0.455269767754 
0.0180136881495 
0.477090181128 
0.20090686778 
0.219917573507 
0.239565179724 
0.287646325115 
0.370173110788 
0.354909675867 
0.328178740109 
0.393251208887 
0.0526814336142 
0.357039191946 
0.493527054114 
0.318013696588 
0.0736954887361 
<1x20 sparse matrix of type '<type 'numpy.int8'>' 
     with 0 stored elements in LInked List format> 

ответ

3

Ваша матрица имеет DTYPE int8, но вы пытаетесь сохранить значения с плавающей точкой в ​​нем. NumPy округляет значения до 0, а затем обнаруживает, что, поскольку это разреженная матрица, нули не должны быть явно сохранены.

Вы имели в виду построить матрицу с плавающей точкой dtype?

Смежные вопросы