Fehler Operands Could Not Be Broadcast Together With Shapes Error behoben in Python

Haider Ali 14 April 2022
Fehler Operands Could Not Be Broadcast Together With Shapes Error behoben in Python

In Python können numpy-Arrays mit unterschiedlichen Formen nicht zusammen übertragen werden. Das bedeutet, dass Sie nicht zwei 2D-Arrays mit unterschiedlichen Zeilen und Spalten hinzufügen können.

Aber es gibt einen Weg, wie Sie das tun können. Schau mal.

Behebung des Fehlers operands could not be broadcast together with shapes in Python

Sie können zwei 2D-Arrays mit unterschiedlichen Formen nicht addieren oder multiplizieren. Sehen Sie sich den folgenden Code an.

import numpy as np

# Addition Example

# 2d array with shape 2 rows and 3 columns
array_1 = np.array([[1, 1, 1], [1, 1, 1]])
# 2d array with shape 3 rows and 2 columns
array_2 = np.array([[1, 1], [1, 1], [1, 1]])
# Addition applying on the arrays
array_Addition = array_1 + array_2

Wie Sie sehen können, gibt es zwei 2D-Arrays mit unterschiedlichen Formen.

Das erste Array hat zwei Zeilen und drei Spalten, und das zweite Array hat drei Zeilen und zwei Spalten. Wenn Sie sie hinzufügen, wird dieser Fehler ausgegeben: operands could not be broadcast together with shapes.

Es funktioniert genauso wie das Addieren von zwei Matrizen in der Mathematik.

Das erste Element des ersten Arrays wird mit dem ersten Element des zweiten Arrays hinzugefügt, und das zweite Element wird mit dem zweiten hinzugefügt. Wenn die Formen also nicht übereinstimmen, wird ein Fehler ausgegeben.

Daher müssen wir die Umformungsfunktionen verwenden, um die gleichen Formen für die beiden 2D-Arrays zu haben. Im folgenden Code formen wir das zweite Array gemäß den Formen des ersten um.

Sobald die Formen gleich sind, können Sie die beiden Arrays hinzufügen.

import numpy as np

# Addition Example

# 2d array with shape 2 rows and 3 columns
array_1 = np.array([[1, 1, 1], [1, 1, 1]])
# 2d array with shape 3 rows and 2 columns
array_2 = np.array([[1, 1], [1, 1], [1, 1]])

# changing the shape of array_2 according to the Array_1 or Array_1 according to Array_2
array_2 = array_2.reshape((2, 3))

# again Addition applying on the arrays
array_Addition = array_1 + array_2

print(array_Addition)

Ausgabe:

[[2 2 2]
 [2 2 2]]
Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Verwandter Artikel - Python Error

Verwandter Artikel - Python NumPy