sFrame в scipy.sparse csr_matrix

У меня есть такой кадр:

x = sf.SFrame({'users': [{'123': 1.0, '122': 5},
{'134': 3.0, '123': 10}]})

Я хочу преобразовать в scipy.sparse csr_matrix, не вызывая создание графической метки, а только используя sframe и Python.

Как это сделать?

1 ответ

Решение

Предполагая, что вы хотите, чтобы номер строки был индексом строки в выходной разреженной матрице, единственный сложный шаг заключается в использовании SFrame.stack - оттуда вы должны быть в состоянии построить csr_matrix непосредственно.

import sframe as sf
from scipy.sparse import csr_matrix

x = sf.SFrame({'users': [{'123': 1.0, '122': 5},
                         {'134': 3.0, '123': 10}]})
x = x.add_row_number('row_id')
x = x.stack('users')
A = csr_matrix((x['X3'], (x['row_id'], x['X2'])), 
               shape=(2, 135))

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

Другие вопросы по тегам