comment créer une matrice creuse à partir de listes de numéros de
J'ai trois listes à savoir A , B , C
Toutes ces listes contiennent 97510 éléments . J'ai besoin de créer une matrice creuse comme ce
matrix[A[0]][B[0]] = C[0]
Par exemple ,
A=[1,2,3,4,5]
B=[7,8,9,10,11]
C=[14,15,16,17,18]
J'ai besoin de créer une matrice creuse avec
matrix[1][7] = 14 #(which is C[1])
matrix[2][8] = 15 #and so on ..
J'ai essayé et python me donne un message d'erreur indiquant que "les valeurs de l'Indice doit être continue"
Comment dois-je faire ?
OriginalL'auteur dheeraj | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
Je vous suggère de regarder le SciPy matrices creuses. E. g. un chef de l'exploitation de matrices creuses:
Remarque: j'ai juste pris le COO de la matrice, car il a été dans l'exemple, vous pouvez prendre n'importe quel autre. Vous avez probablement essayer celui qui est le plus adapté à votre situation. Ils diffèrent dans la manière dont les données sont compressées, ce qui a une influence sur l'exécution de certaines opérations.
Cet échec pour moi. ValueError: index de ligne dépasse les dimensions de la matrice
La dimension n'est pas réglé correctement. La solution doit être: sparseMatrix = sparse.coo_matrix (C,(A,B)),de la forme=(np.max(A)+1,np.max(B)+1))
OriginalL'auteur Felix Kling
Si vous avez simplement besoin d'une manière d'obtenir la matrice [[0]][B[0]] = C[0], vous pouvez utiliser les éléments suivants:
ÉDITÉ(merci pour gnibbler):
Oui, vous avez droit, merci de m'aviser.
OriginalL'auteur Artsiom Rudzenka
Il est très simple à utiliser un dict, surtout si vous êtes prêt à changer la façon dont vous écrivez les indices légèrement
pour 97k éléments qu'il est probablement mieux (plus rapide) pour utiliser itertools.izip, mais je ne pense pas qu'il méritait la complication supplémentaire. (zip dans Python3 déjà renvoie un itérateur de toute façon)
OriginalL'auteur John La Rooy
Avoir un regard sur numpy/scipy qui a un support limité des matrices. Voir, par exemple, ici
OriginalL'auteur Fredrik Pihl