Saltar al contenido

convirtiendo scipy.sparse.csr.csr_matrix en una lista de listas

Te damos el hallazgo a esta obstáculo, o por lo menos eso pensamos. Si tienes interrogantes déjanoslo saber en un comentario, para nosotros será un placer responderte

Solución:

no se que tf-idf espera, pero es posible que pueda ayudar con el final escaso.

Hacer una matriz dispersa:

In [526]: M=sparse.random(4,10,.1)
In [527]: M
Out[527]: 
<4x10 sparse matrix of type ''
    with 4 stored elements in COOrdinate format>
In [528]: print(M)
  (3, 1)    0.281301619779
  (2, 6)    0.830780358032
  (1, 1)    0.242503399296
  (2, 2)    0.190933579917

Ahora conviértelo a coo formato. Esto ya es eso (podría haber dado el random un parámetro de formato). En cualquier caso, los valores de coo formato se almacenan en 3 matrices:

In [529]: Mc=M.tocoo()
In [530]: Mc.data
Out[530]: array([ 0.28130162,  0.83078036,  0.2425034 ,  0.19093358])
In [532]: Mc.row
Out[532]: array([3, 2, 1, 2], dtype=int32)
In [533]: Mc.col
Out[533]: array([1, 6, 1, 2], dtype=int32)

Parece que quieres ignorar Mc.rowy de alguna manera unirse a los demás.

Por ejemplo como diccionario:

In [534]: k:v for k,v in zip(Mc.col, Mc.data)
Out[534]: 1: 0.24250339929583264, 2: 0.19093357991697379, 6: 0.83078035803205375

o unas columnas en un 2d array:

In [535]: np.column_stack((Mc.col, Mc.data))
Out[535]: 
array([[ 1.        ,  0.28130162],
       [ 6.        ,  0.83078036],
       [ 1.        ,  0.2425034 ],
       [ 2.        ,  0.19093358]])

(También np.array((Mc.col, Mc.data)).T)

O simplemente como una lista de matrices [Mc.col, Mc.data]o [Mc.col.tolist(), Mc.data.tolist()] lista de listas, etc.

¿Puedes tomarlo desde allí?

Recuerda que tienes la opción de comentar si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *