sFrame 变成 scipy.sparse csr_matrix
sFrame into scipy.sparse csr_matrix
我有一个像这样的 sframe:
x = sf.SFrame({'users': [{'123': 1.0, '122': 5},
{'134': 3.0, '123': 10}]})
我想在不调用 graphlab create 的情况下转换为 scipy.sparse csr_matrix,而只使用 sframe 和 Python。
怎么做?
假设您希望行号作为输出稀疏矩阵中的行索引,唯一棘手的步骤是使用 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))
我也是hard-coding这里矩阵的维度,但这可能是你想通过编程弄清楚的东西。
我有一个像这样的 sframe:
x = sf.SFrame({'users': [{'123': 1.0, '122': 5},
{'134': 3.0, '123': 10}]})
我想在不调用 graphlab create 的情况下转换为 scipy.sparse csr_matrix,而只使用 sframe 和 Python。
怎么做?
假设您希望行号作为输出稀疏矩阵中的行索引,唯一棘手的步骤是使用 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))
我也是hard-coding这里矩阵的维度,但这可能是你想通过编程弄清楚的东西。