Comprendre l'erreur : « les opérandes n'ont pas pu être diffusés ensemble » dans NumPy
Lorsque vous travaillez avec des tableaux NumPy, il est crucial de prêter attention à formes de tableau pour éviter les erreurs de diffusion. Dans le scénario donné, vous avez rencontré l'erreur "ValueError : les opérandes n'ont pas pu être diffusés avec les formes."
Cette erreur se produit car les opérateurs de NumPy, tels que *, effectuent des opérations par élément par défaut. Cependant, si les tableaux ont des formes différentes, NumPy tente de les diffuser, ce qui peut entraîner des problèmes de compatibilité.
Règles de diffusion et compatibilité
La diffusion implique l'expansion des dimensions d'un ou les deux tableaux pour les rendre compatibles pour les opérations par éléments. Des dimensions de taille 1 ou des dimensions manquantes peuvent être diffusées.
Dans votre cas, X a une forme de (97, 2) et y a une forme de (2, 1). La diffusion des dimensions entraînerait :
97 2 2 1
Comme vous pouvez le constater, la première dimension (97 et 2) est en conflit. Selon les règles de diffusion, les dimensions en conflit doivent être identiques ou l'une d'elles doit être 1.
Résoudre l'erreur de diffusion
Pour résoudre ce problème, vous devez vous assurer que les dimensions des tableaux sont compatibles. Dans votre cas, vous pouvez utiliser le produit scalaire de NumPy, qui effectue la multiplication matricielle :
X.dot(y)
La multiplication matricielle suit différentes règles de compatibilité, garantissant que le nombre de colonnes dans le premier tableau correspond au nombre de lignes dans le second. tableau. Puisque X a 2 colonnes et y a 2 lignes, la multiplication matricielle est valide, ce qui donne un vecteur de forme (97, 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!