Maison > Article > développement back-end > Comment créer une matrice clairsemée en Python ?
Dans cet article, nous allons vous montrer ce qu'est une matrice clairsemée et comment créer une matrice clairsemée en python.
Une matrice clairsemée est une matrice dans laquelle la plupart des éléments sont 0. Autrement dit, la matrice contient des données pour quelques emplacements seulement. La majeure partie de la mémoire consommée par une matrice clairsemée est constituée de zéros.
Par exemple -
M = [ [1, 0, 0, 0], [0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 2] ]
Utiliser un tableau 2D pour représenter une matrice clairsemée gaspille beaucoup de mémoire car les zéros dans la matrice sont inutiles dans la plupart des cas. Ainsi, au lieu de stocker zéro avec des éléments non nuls, nous stockons uniquement des éléments non nuls. Cela implique d'utiliser des triplets pour stocker des éléments non nuls (ligne, colonne, valeur).
Le traitement du langage naturel (NLP) et le codage des données font tous deux un usage intensif de matrices clairsemées. Si la plupart des éléments matriciels sont égaux à 0, le coût de stockage de tous les éléments matriciels sera élevé.
C'est parce que nous ne disposons que de quelques points de données et que la majeure partie de l'espace de stockage est occupée par des zéros redondants.
Voici les deux principaux avantages de l'utilisation de matrices clairsemées au lieu de matrices simples -
Stockage - Comme il y a moins d'éléments non nuls que zéro, moins de mémoire peut être utilisée pour stocker ces éléments individuellement.
Temps de calcul - Le temps de calcul peut être économisé en créant logiquement une structure de données qui ne traverse que des éléments non nuls.
ScPy en Python fournit des outils pour créer des matrices clairsemées en utilisant diverses structures de données et convertir des matrices denses en matrices clairsemées.
En Python, nous pouvons créer une matrice clairsemée en utilisant la fonction suivante -
Fonction csr_matrix() - Crée une matrice clairsemée au format sparse row compressé,
Fonction csc_matrix() - Crée une matrice clairsemée au format colonne clairsemée compressée. ,,
Il crée des matrices clairsemées au format row clairsemé compressé.
scipy.sparse.csr_matrix(shape=None, dtype=None)
shape - c'est la forme de la matrice
dtype - C'est le type de données de la matrice
Voici les algorithmes/étapes à suivre pour effectuer la tâche requise -
Utilisez le mot-clé import pour importer le module numpy avec un alias (np).
Utilisez le mot-clé import pour importer la fonction csr_matrix depuis le module scipy.
Utilisez la fonction csr_matrix() pour créer une matrice clairsemée 3 * 3 de type de données int (format row) et convertissez-la en tableau à l'aide de la fonction toarray().
Imprimez la matrice clairsemée générée.
Le programme suivant utilise la fonction csr_matrix() pour renvoyer une matrice clairsemée (3x3) -
# importing numpy module with an alias name import numpy as np # importing csr_matrix function from scipy module from scipy.sparse import csr_matrix # Using csr_matrix function to create a 3 * 3 sparse matrix of int datatype # and converting into array sparse_matrix = csr_matrix((3, 3), dtype = np.int8).toarray() # printing the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Une fois exécuté, le programme ci-dessus générera le résultat suivant -
The resultant sparse matrix: [[0 0 0] [0 0 0] [0 0 0]]
Voici les algorithmes/étapes à suivre pour effectuer la tâche requise -
Utilisez le mot-clé import pour importer le module numpy avec un alias (np).
Utilisez le mot-clé import pour importer la fonction csr_matrix depuis le module scipy.
Utilisez la fonction numpy.array() pour créer un tableau (renvoie un ndarray. Un ndarray est un objet tableau qui répond aux exigences données)
# importing numpy module with alias name import numpy as np # importing csr_matrix function from scipy module from scipy.sparse import csr_matrix # Giving rows and columns values rows = np.array([0, 1, 0, 2, 1, 1]) columns = np.array([1, 0, 0, 2, 1, 2]) # Giving array data arrayData = np.array([1, 3, 2, 5, 7, 6]) # Using csr_matrix function to create a 3x3 sparse matrix sparse_matrix = csr_matrix((arrayData, (rows, columns)), shape = (3, 3)).toarray() # print the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Une fois exécuté, le programme ci-dessus générera le résultat suivant -
The resultant sparse matrix: [[2 1 0] [3 7 6] [0 0 5]]
Il crée des matrices clairsemées au format de colonnes clairsemées compressées.
scipy.sparse.csc_matrix(shape=None, dtype=None)
shape - c'est la forme de la matrice
dtype - C'est le type de données de la matrice
Voici les algorithmes/étapes à suivre pour effectuer la tâche requise -
Utilisez le mot-clé import pour importer le module numpy avec un alias (np).
Utilisez le mot-clé import pour importer la fonction csc_matrix depuis le module scipy.
Créez une matrice clairsemée 3*3 de type de données int (format column) à l'aide de la fonction csc_matrix() et convertissez-la en tableau à l'aide de la fonction toarray().
Imprimez la matrice clairsemée générée.
Le programme suivant renvoie une matrice clairsemée (3x3) au format colonnes à l'aide de la fonction csc_matrix() -
# importing numpy module with an alias name import numpy as np # importing csc_matrix function from scipy module from scipy.sparse import csc_matrix # Using csc_matrix function to create a 3 * 3 sparse matrix of int datatype # and converting into array sparse_matrix = csc_matrix((3, 3), dtype = np.int8).toarray() # printing the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Une fois exécuté, le programme ci-dessus générera le résultat suivant -
The resultant sparse matrix: [[0 0 0] [0 0 0] [0 0 0]]
Le programme suivant renvoie une matrice clairsemée (3x3) au format colonne entière à l'aide de la fonction csc_matrix() -
import numpy as np # importing csc_matrix function from scipy module from scipy.sparse import csc_matrix # Giving rows and columns values rows = np.array([0, 1, 0, 2, 1, 1]) columns = np.array([1, 0, 0, 2, 1, 2]) # Giving array data arrayData = np.array([1, 3, 2, 5, 7, 6]) # Using csc_matrix function to create a 3x3 sparse matrix in column format sparse_matrix = csc_matrix((arrayData, (rows, columns)), shape = (3, 3)).toarray() # print the resultant sparse matrix print("The resultant sparse matrix:\n", sparse_matrix)
Une fois exécuté, le programme ci-dessus générera le résultat suivant -
The resultant sparse matrix: [[2 1 0] [3 7 6] [0 0 5]]
Dans ce tutoriel, nous avons appris quatre façons différentes de générer des matrices clairsemées en Python. Nous avons également appris à générer une matrice clairsemée à partir d'un tableau numpy.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!