Mis a jour le 2025-08-02, 18:50

Matrices Sparse

Format COO (coordinate format, ijv format) :
  • format de matrice sparse où chaque cellule non nulle est stockée sous forme (numéro de ligne, numéro de colonne, valeur).
  • Le format COO permet des conversions rapides vers CSR ou CSC, mais pas des opérations arithmétiques.
  • mat = scipy.io.mmread('matrixFile.mtx') : lit un fichier au format matrix market exchange et renvoie une matrice sparse de type coo (coo_matrix).
  • mat = mat.astype(int) : pour changer le type des éléments de la matrice.
  • scipy.io.mmwrite('output.mtx', mat) : pour écrire la matrice. Peut aussi être utilisé avec une matrice CSR ou CSC.
  • mat.toarray() : convertit en une array numpy dense.
  • mat.tocsr() : convertit en format CSR (csr_matrix)
  • mat.tocsc() : convertit en format CSC (csc_matrix)
Format CSR (compressed sparse row format) :
  • pour une matrix n x p avec m valeurs non nulles : triplet indices, data, indptr d'array numpy 1d de tailles respectives m, m et n + 1. Les éléments de la ligne i sont aux colonnes indices[indptr[i]:indptr[i+1]] et ont comme valeurs data[indptr[i]:indptr[i+1]]
  • permet les opérations arithmétiques et efficace pour les opérations orientées ligne.
  • mat.indices, mat.data, mat.indptr : accès aux 3 array numpy
  • mat.toarray() : convertit en une array numpy dense.
  • mat.tocoo() : convertit en format COO.
  • mat.tocsc() : convertit en format CSC.
Format CSC (compressed sparse column format) :
  • pour une matrix n x p avec m valeurs non nulles : triplet indices, data, indptr d'array numpy 1d de tailles respectives m, m et p + 1. Les éléments de la colonne j sont aux lignes indices[indptr[j]:indptr[j+1]] et ont comme valeurs data[indptr[j]:indptr[j+1]]
  • mat.indices, mat.data, mat.indptr : accès aux 3 array numpy
  • mat.toarray() : convertit en une array numpy dense.
  • mat.tocoo() : convertit en format COO.
  • mat.tocsr() : convertit en format CSR.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert