Maison >développement back-end >Tutoriel Python >Tableaux NumPy : quelle est la différence entre la forme (R, 1) et (R,) et comment cela affecte-t-il la multiplication matricielle ?

Tableaux NumPy : quelle est la différence entre la forme (R, 1) et (R,) et comment cela affecte-t-il la multiplication matricielle ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-24 16:22:15604parcourir

NumPy Arrays: What's the Difference Between Shape (R, 1) and (R,) and How Does it Affect Matrix Multiplication?

Quelle est la différence entre la forme (R, 1) et (R,) dans NumPy ?

Dans NumPy, vous pouvez rencontrer des tableaux avec des formes (R, 1) et (R,). Bien que ces formes puissent sembler similaires, elles représentent différentes interprétations des données sous-jacentes.

Un tableau de forme (R, 1) est un tableau 2D avec R lignes et une seule colonne. Il s'agit essentiellement d'un vecteur colonne, qui peut être considéré comme une liste d'éléments R. En revanche, un tableau de forme (R,) est un tableau 1D avec R éléments. Il s'agit en fait d'une liste, chaque élément représentant une valeur scalaire.

Pourquoi ne pas concevoir NumPy pour favoriser (R, 1) pour une multiplication matricielle plus facile ?

Le choix de conception de NumPy de ne pas favoriser (R, 1) 1) les formes de multiplication matricielle découlent de leur flexibilité inhérente. Autoriser les deux formes permet aux programmeurs de choisir la représentation la plus appropriée pour leurs tâches spécifiques. Alors que les formes (R, 1) sont plus pratiques pour la multiplication matricielle, les formes (R,) peuvent être préférables dans d'autres contextes, par exemple lorsque vous travaillez avec des vecteurs ou des listes de valeurs scalaires.

Meilleures façons d'effectuer une multiplication matricielle

Sans remodeler explicitement les tableaux, il existe des approches alternatives pour effectuer une multiplication matricielle. Par exemple, l'utilisation de la fonction np.expand_dims() peut obtenir la transformation de forme souhaitée. Alternativement, vous pouvez profiter de la diffusion, que NumPy effectue automatiquement sous certaines conditions. Par exemple, dans l'expression numpy.dot(M[:,0], numpy.ones((1, R))), la diffusion étendra automatiquement numpy.ones((1, R)) en numpy.ones((R , 1)).

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn