Python: Vecteurs, Matrices et Tableaux avec NumPy
Dans cette leçon, nous allons examiner quelques trucs et astuces pour jouer avec des vecteurs, des matrices et des tableaux en utilisant la bibliothèque NumPy en Python. Cette leçon est un très bon point de départ si vous vous lancez dans la science des données et que vous avez besoin d’un aperçu mathématique introductif de ces composants et de la façon dont nous pouvons jouer avec eux en utilisant NumPy dans le code.
La bibliothèque NumPy nous permet d’effectuer diverses opérations qui doivent être effectuées sur des structures de données souvent utilisées dans l’apprentissage automatique et la science des données comme les vecteurs, les matrices et les tableaux. Nous ne montrerons que les opérations les plus courantes avec NumPy qui sont utilisées dans de nombreux pipelines d’apprentissage automatique. Enfin, veuillez noter que NumPy n’est qu’un moyen d’effectuer les opérations, donc les opérations mathématiques que nous montrons sont l’objectif principal de cette leçon et non le package NumPy lui-même. Commençons.
- Qu’est-ce qu’un vecteur ?
- Faire une matrice
- En utilisant une matrice clairsemée
- Appliquer des opérations à tous les éléments vectoriels
- Moyenne, Variance et Écart type
- Transposer une matrice
- Aplatir une matrice
- Calculer les valeurs propres et les vecteurs propres
- Produits Dot de Vecteurs
- Ajouter, Soustraire et multiplier des matrices
- Conclusion
Qu’est-ce qu’un vecteur ?
Selon Google, un Vecteur est une grandeur ayant une direction ainsi qu’une grandeur, notamment pour déterminer la position d’un point de l’espace par rapport à un autre.
Les vecteurs sont très importants dans l’apprentissage automatique car ils décrivent non seulement l’ampleur mais aussi la direction des entités. Nous pouvons créer un vecteur dans NumPy avec l’extrait de code suivant:
row_vector=np.array()
print(row_vector)
Dans l’extrait de code ci-dessus, nous avons créé un vecteur ligne. Nous pouvons également créer un vecteur de colonne comme:
col_vector=np.array(,,])
print(col_vector)
Faire une matrice
Une matrice peut être simplement comprise comme un tableau bidimensionnel. Nous pouvons créer une matrice avec NumPy en créant un tableau multidimensionnel:
print(matrix)
Bien que la matrice soit exactement similaire à un tableau multidimensionnel, la structure de données matricielle n’est pas recommandée pour deux raisons:
- Le tableau est la norme en ce qui concerne le paquet NumPy
- La plupart des opérations avec NumPy renvoie des tableaux et non une matrice
En utilisant une matrice clairsemée
Pour rappeler, une matrice clairsemée est celle dans laquelle la plupart des éléments sont nuls. Maintenant, un scénario courant dans le traitement des données et l’apprentissage automatique consiste à traiter des matrices dans lesquelles la plupart des éléments sont nuls. Par exemple, considérons une matrice dont les lignes décrivent chaque vidéo sur Youtube et les colonnes représentent chaque utilisateur enregistré. Chaque valeur représente si l’utilisateur a regardé une vidéo ou non. Bien sûr, la majorité des valeurs de cette matrice seront nulles. L’avantage avec une matrice clairsemée est qu’elle ne stocke pas les valeurs qui sont nulles. Il en résulte un énorme avantage de calcul et une optimisation du stockage.
Créons une matrice spark ici:
Pour comprendre comment fonctionne le code, nous examinerons la sortie ici:
Dans le code ci-dessus, nous avons utilisé une fonction NumPy pour créer une matrice de lignes clairsemée compressée où des éléments non nuls sont représentés à l’aide des index basés sur zéro. Il existe différents types de matrice clairsemée, comme:
- Colonne clairsemée compressée
- Liste de listes
- Dictionnaire de clés
Nous ne plongerons pas dans d’autres matrices clairsemées ici, mais nous savons que chacune de leurs utilisations est spécifique et que personne ne peut être qualifié de « meilleur ».
Appliquer des opérations à tous les éléments vectoriels
C’est un scénario courant lorsque nous devons appliquer une opération commune à plusieurs éléments vectoriels. Cela peut être fait en définissant un lambda puis en le vectorisant. Voyons un extrait de code pour le même:
,
])
mul_5 = lambda x: x*5
vectorized_mul_5 = np.vectorized(mul_5)
vectorized_mul_5(matrix)
Pour comprendre comment fonctionne le code, nous examinerons la sortie ici:
Dans l’extrait de code ci-dessus, nous avons utilisé la fonction vectorize qui fait partie de la bibliothèque NumPy, pour transformer une simple définition lambda en une fonction qui peut traiter chaque élément du vecteur. Il est important de noter que vectoriser n’est qu’une boucle sur les éléments et qu’elle n’a aucun effet sur les performances du programme. NumPy permet également la diffusion, ce qui signifie qu’au lieu du code complexe ci-dessus, nous aurions pu simplement faire:
Et le résultat aurait été exactement le même. Je voulais d’abord montrer la partie complexe, sinon vous auriez sauté la section!
Moyenne, Variance et Écart type
Avec NumPy, il est facile d’effectuer des opérations liées aux statistiques descriptives sur les vecteurs. La moyenne d’un vecteur peut être calculée comme suit:
d’un vecteur peut être calculée comme suit:
L’écart type d’un vecteur peut être calculé comme suit:
La sortie des commandes ci-dessus sur la matrice donnée est donnée ici:
Transposer une matrice
La transposition est une opération très courante dont vous entendrez parler chaque fois que vous êtes entouré de matrices. La transposition est juste un moyen d’échanger les valeurs en colonnes et en lignes d’une matrice. Veuillez noter qu’un vecteur ne peut pas être transposé car un vecteur n’est qu’une collection de valeurs sans que ces valeurs soient catégorisées en lignes et en colonnes. Veuillez noter que la conversion d’un vecteur ligne en un vecteur colonne n’est pas transposable (sur la base des définitions de l’algèbre linéaire, ce qui est en dehors du cadre de cette leçon).
Pour l’instant, nous trouverons la paix simplement en transposant une matrice. Il est très simple d’accéder à la transposition d’une matrice avec NumPy :
La sortie de la commande ci-dessus sur la matrice donnée est donnée ici:
La même opération peut être effectuée sur un vecteur ligne pour le convertir en vecteur colonne.
Aplatir une matrice
Nous pouvons convertir une matrice en un tableau unidimensionnel si nous souhaitons traiter ses éléments de manière linéaire. Cela peut être fait avec l’extrait de code suivant:
La sortie de la commande ci-dessus sur la matrice donnée est donnée ici :
Notez que la matrice d’aplatissement est un tableau unidimensionnel, simplement linéaire.
Calculer les valeurs propres et les vecteurs propres
Les vecteurs propres sont très couramment utilisés dans les packages d’apprentissage automatique. Ainsi, lorsqu’une fonction de transformation linéaire est présentée sous forme de matrice, alors X, vecteurs propres sont les vecteurs qui ne changent que dans l’échelle du vecteur mais pas dans sa direction. On peut dire que :
Ici, X est la matrice carrée et γ contient les Valeurs propres. De plus, v contient les vecteurs propres. Avec NumPy, il est facile de calculer les valeurs propres et les vecteurs Propres. Voici l’extrait de code où nous démontrons la même chose:
La sortie de la commande ci-dessus sur la matrice donnée est donnée ici:
Produits Dot de Vecteurs
Les Produits dot de Vecteurs sont un moyen de multiplier 2 vecteurs. Il vous indique combien de vecteurs sont dans la même direction, par opposition au produit croisé qui vous indique le contraire, à quel point les vecteurs sont dans la même direction (appelés orthogonaux). Nous pouvons calculer le produit scalaire de deux vecteurs comme indiqué dans l’extrait de code ici:
b = np.tableau()
np.dot(a, b)
La sortie de la commande ci-dessus sur les tableaux donnés est donnée ici:
Ajouter, Soustraire et multiplier des matrices
Ajouter et soustraire plusieurs matrices est une opération assez simple dans les matrices. Cela peut être fait de deux manières. Regardons l’extrait de code pour effectuer ces opérations. Pour que cela reste simple, nous utiliserons la même matrice deux fois:
Ensuite, deux matrices peuvent être soustraites comme suit:
La sortie de la commande ci-dessus sur la matrice donnée est donnée ici:
Comme prévu, chacun des éléments de la matrice est ajouté / soustrait avec l’élément correspondant. Multiplier une matrice revient à trouver le produit scalaire comme nous l’avons fait précédemment :
Le code ci-dessus trouvera la vraie valeur de multiplication de deux matrices, donnée comme:
La sortie de la commande ci-dessus sur la matrice donnée est donnée ici:
Conclusion
Dans cette leçon, nous avons passé en revue de nombreuses opérations mathématiques liées aux Vecteurs, Matrices et Tableaux qui sont couramment utilisés dans le traitement des données, les statistiques descriptives et la science des données. Ce fut une leçon rapide couvrant uniquement les sections les plus courantes et les plus importantes de la grande variété de concepts, mais ces opérations devraient donner une très bonne idée de ce que toutes les opérations peuvent être effectuées tout en traitant de ces structures de données.
Veuillez partager librement vos commentaires sur la leçon sur Twitter avec @linuxhint et @sbmaggarwal (c’est moi!).