Matrix est une structure de données de base en algèbre linéaire et est largement utilisée dans divers calculs scientifiques et mathématiques. Une matrice est un tableau rectangulaire de nombres disposés en lignes et en colonnes. Il est généralement représenté sous forme d’une grille bidimensionnelle. Cependant, dans certains cas, nous pouvons avoir besoin de manipuler des matrices avec des dimensions supplémentaires pour effectuer des transformations de données ou effectuer des opérations mathématiques avancées.
Python, en tant que langage de programmation polyvalent, fournit un riche écosystème de bibliothèques qui fournit des outils puissants pour les opérations matricielles. L'une de ces bibliothèques est NumPy, qui signifie Numerical Python. NumPy fournit des outils efficaces et pratiques pour travailler avec des tableaux, y compris des matrices, et diverses fonctions mathématiques.
Avant de procéder à la mise en œuvre, assurons-nous que NumPy est installé sur votre ordinateur. Si vous ne l'avez pas encore installé, vous pouvez facilement l'installer à l'aide du pip du programme d'installation du package Python en exécutant la commande suivante -
pip install numpy
Après avoir installé NumPy, nous pouvons continuer à créer et modifier des matrices.
Ensuite, nous créerons la matrice à l'aide de la fonction numpy.array. Voici un exemple -
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array accepte une liste imbriquée comme argument, où chaque liste représente une ligne de la matrice. Dans notre exemple, nous avons une matrice 3x3.
Pour ajouter des dimensions personnalisées à une matrice, nous pouvons utiliser la propriété numpy.newaxis. L'attribut newaxis nous permet d'augmenter la dimension d'une matrice existante d'une dimension. Voyons comment ça marche −
new_matrix = matrix[:, np.newaxis]
Dans le code ci-dessus, [:,np.newaxis] ajoute une nouvelle dimension à notre matrice en insérant un nouvel axe à la deuxième position. Deux points : signifie toutes les lignes, np.newaxis signifie où le nouvel axe doit être inséré. Cette opération convertit efficacement la matrice bidimensionnelle d'origine en une matrice tridimensionnelle.
Imprimons la matrice originale et la nouvelle matrice pour observer les changements -
print("Original Matrix:") print(matrix) print("\nNew Matrix:") print(new_matrix)
L'exécution du code produira le résultat suivant−
Original Matrix: [[1 2 3] [4 5 6] [7 8 9]] New Matrix: [[[1 2 3]] [[4 5 6]] [[7 8 9]]]
Comme vous pouvez le constater, la nouvelle matrice a une dimension supplémentaire par rapport à la matrice d'origine. Chaque ligne de la matrice d'origine est désormais encapsulée dans son propre tableau interne. Cela augmente effectivement la dimensionnalité de la matrice. L'ajout de dimensions personnalisées est utile dans les scénarios dans lesquels vous devez effectuer des opérations nécessitant des matrices de dimensions supérieures, telles que des algorithmes avancés d'apprentissage automatique ou des calculs tensoriels.
Lors de l'ajout de dimensions personnalisées aux matrices dans NumPy, un concept important à comprendre est la diffusion. La diffusion est un mécanisme puissant dans NumPy qui permet d'exploiter ensemble des tableaux de formes différentes. Lors de l'ajout de dimensions personnalisées à une matrice, la diffusion peut ajuster automatiquement la forme des tableaux impliqués dans le calcul.
Prenons un exemple pour démontrer la diffusion -
matrix1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix2 = np.array([10, 20, 30])
Dans le code ci-dessus, nous avons une matrice 2x3 (matrice1) et un tableau 1D (matrice2). Si nous voulons ajouter la matrice2 à chaque ligne de la matrice1, nous pouvons simplement utiliser l'opérateur + − p>
result = matrix1 + matrix2
Le résultat sera −
[[11 22 33] [14 25 36]]
Dans cet exemple, NumPy diffuse automatiquement la matrice unidimensionnelle 2 pour qu'elle corresponde à la forme de la matrice 1, permettant d'effectuer une addition par élément.
En plus d'ajouter des dimensions personnalisées aux matrices 2D, vous pouvez également ajouter des dimensions personnalisées aux matrices de dimensions supérieures. Le processus reste le même ; il vous suffit de spécifier l'emplacement souhaité du nouvel axe.
Considérons un exemple de matrice 3D −
matrix3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
Supposons que nous souhaitions ajouter une nouvelle dimension à la fin de la matrice tridimensionnelle ci-dessus. Nous pouvons utiliser la propriété np.newaxis de la même manière :
new_matrix3d = matrix3d[..., np.newaxis]
Dans le code ci-dessus, utilisez... pour représenter toutes les dimensions existantes et insérez np.newaxis à la fin. Cela produira une matrice à 4 dimensions.
L'ajout de dimensions personnalisées est généralement lié au remodelage des matrices. NumPy fournit des fonctions de remodelage qui vous permettent de modifier la forme d'une matrice, notamment en ajoutant ou en supprimant des dimensions. Cette fonction est pratique lorsque vous devez manipuler la structure d'une matrice.
Voici un exemple de comment remodeler une matrice et ajouter des dimensions personnalisées -
matrix = np.array([[1, 2, 3], [4, 5, 6]]) reshaped_matrix = matrix.reshape((2, 3, 1))
Dans le code ci-dessus, la fonction reshape est utilisée pour changer la forme de la matrice en (2, 3, 1). Les dimensions ajoutées à la fin correspondent aux dimensions personnalisées que nous souhaitons ajouter.
Dans cet article, nous explorons d'autres concepts liés à l'ajout de dimensions personnalisées aux matrices à l'aide de Python et NumPy. Nous avons discuté de la diffusion, qui permet de manipuler ensemble des tableaux de formes différentes, et vu comment elle peut être utile lors de l'exécution de calculs sur des matrices comportant des dimensions supplémentaires.
Nous avons également expliqué comment ajouter des dimensions personnalisées à une matrice avec des dimensions plus élevées, et comment remodeler la matrice et inclure des dimensions personnalisées dans le processus. Ces techniques offrent une flexibilité dans la manipulation des matrices pour répondre à des besoins spécifiques.
En comprenant ces concepts et en tirant parti des outils fournis par NumPy, vous pouvez gérer efficacement des matrices de différentes dimensions et effectuer des calculs complexes.
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!