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))
Я также жестко программирую размерность матрицы здесь, но это, вероятно, то, что вы хотели бы выяснить программно.