Maison  >  Article  >  développement back-end  >  Comment créer une matrice clairsemée en Python ?

Comment créer une matrice clairsemée en Python ?

PHPz
PHPzavant
2023-09-05 15:49:061180parcourir

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.

Qu'est-ce qu'une matrice clairsemée ?

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.

Avantages des matrices clairsemées

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.

Comment créer une matrice clairsemée en Python ?

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. ,,

Méthode 1. Utilisez la fonction csr_matrix() pour créer une matrice clairsemée

Il crée des matrices clairsemées au format row clairsemé compressé.

Grammaire

scipy.sparse.csr_matrix(shape=None, dtype=None)

Paramètres

  • shape - c'est la forme de la matrice

  • dtype - C'est le type de données de la matrice

Algorithme (étapes)

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.

Exemple

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)

Sortie

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]]

Méthode 2. Créez une matrice clairsemée à l'aide de la fonction csr_matrix() à partir d'un tableau Numpy

Algorithme (étapes)

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)

Exemple

# 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)

Sortie

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]]

Méthode 3. Utilisez la fonction csc_matrix() pour créer une matrice clairsemée

Il crée des matrices clairsemées au format de colonnes clairsemées compressées.

Grammaire

scipy.sparse.csc_matrix(shape=None, dtype=None)

Paramètres

  • shape - c'est la forme de la matrice

  • dtype - C'est le type de données de la matrice

Algorithme

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.

Exemple

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)

Sortie

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]]

Méthode 4. Créez une matrice clairsemée à l'aide de la fonction csc_matrix() à partir d'un tableau Numpy

Exemple

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)

Sortie

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]]

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer