Erreurs de diffusion dans Numpy : comprendre le problème « Impossible de diffuser »
Dans Numpy, les opérations numériques sur les tableaux doivent respecter une diffusion spécifique règles. Lorsque ces règles ne sont pas respectées, l'opération peut échouer, entraînant une erreur "ValueError : les opérandes n'ont pas pu être diffusés ensemble".
Considérons le cas d'un tableau X de forme (m,n) et d'un vecteur y de forme (n,1). Tenter de multiplier par éléments ces tableaux à l'aide de l'opérateur * déclenchera cette erreur.
Comprendre les opérations par éléments et la diffusion
Les opérations par éléments dans Numpy s'appliquent aux mathématiques opérations sur les éléments correspondants des tableaux. Lorsque les tableaux ont des formes différentes, une diffusion se produit, où l'un ou les deux tableaux sont développés en dimensions pour les rendre compatibles.
Par exemple, dans X*y, X est développé dans la deuxième dimension (pour devenir (m ,n,1)), tandis que y est développé dans la première dimension (pour devenir (1,n,1)). Cependant, cette expansion entre en conflit avec les dimensions de X et Y, car la première dimension de X est 97 tandis que la deuxième dimension de y est 2.
Alternative : Multiplication matricielle avec point
Pour effectuer correctement la multiplication matricielle entre X et y (où y est un vecteur colonne), le produit scalaire doit être utilisé. Le produit scalaire, noté X.dot(y), multiplie les éléments correspondants de X et y et les additionne, produisant un vecteur de forme (m,1).
Conclusion
Comprendre les règles de diffusion est essentiel pour éviter les erreurs lors de l'exécution d'opérations numériques sur des tableaux dans Numpy. Pour la multiplication matricielle, l'utilisation de points garantit des opérations correctes sans risque d'erreurs de diffusion.
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!