Lire sparse matrix en python
Je veux lire un sparse matrix. Quand je suis bâtiment ngrams à l'aide de scikit learn. Son transform() donne de sortie dans la matrice creuse. Je veux lire cette matrice sans faire todense().
Code:
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
document = ['john guy','nice guy']
vectorizer = CountVectorizer(ngram_range=(1, 2))
X = vectorizer.fit_transform(document)
transformer = vectorizer.transform(document)
print transformer
De sortie :
(0, 0) 1
(0, 1) 1
(0, 2) 1
(1, 0) 1
(1, 3) 1
(1, 4) 1
Comment puis-je lire cette sortie pour obtenir son valeurs. J'ai besoin de la valeur à (0,0), (0,1) et ainsi de suite et enregistrez en liste.
OriginalL'auteur iNikkz | 2014-11-12
Vous devez vous connecter pour publier un commentaire.
La documentation de cette
transform
méthode dit qu'elle renvoie une matrice creuse, mais ne spécifie pas la nature. Différents types vous permettent d'accéder aux données de différentes façons, mais il est facile de convertir de l'un à l'autre. Votre impression de l'affichage est typique de l'str
pour une matrice creuse.Un équivalent de la matrice peuvent être générés avec:
production:
Un
csr
type peut être indexé comme une matrice dense:À l'intérieur de l'
csr
matrice stocke ses données dansdata
,indices
,indptr
, ce qui est pratique pour le calcul, mais un peu obscur. Convertircoo
format de données qui ressemble à votre entrée:Ou vous pouvez convertir en un
dok
type, et que l'accès des données comme un dictionnaire:produit: (Python3 ici)
La
lil
format stocke les données sous 2 listes de listes, l'une avec les données (tous les 1 dans cet exemple), et l'autre avec la ligne des indices.Ou pensez-vous qu'à "lire" les données d'une autre façon?
OriginalL'auteur hpaulj
C'est un SciPy RSE de la matrice. Convertir cette (ligne, colonne, valeur) triples, l'option la plus facile est de convertir à COO format, puis obtenir les triples:
(À noter que la sortie est triée.)
OriginalL'auteur Fred Foo
Vous pouvez utiliser
data
etindices
:Désolé, je n'ai pas lu la question attentivement. J'ai fourni quelques méthodes de lecture des données. Espérons que cela aide.
OriginalL'auteur Irshad Bhat