ValueError : Operands could not be broadcast together with shapes (Solved)

Operands could not be broadcast together with shapes

As you know Numpy allows you to create a NumPy array and do complex mathematic calculations on them. Each NumPy array has some shape or size and if you do some operations on it then you can get the ValueError like operands could not be broadcast together with shapes.

In this entire tutorial, you will learn how to solve the issue of operands could not be broadcast together with shapes with different methods.

Cause of operands could not be broadcast together with shapes Error

The error operands could not be broadcast together with shapes Error is a ValueError and you will get it when you are trying to multiply the two NumPy arrays or matrices of different shapes.

Let’s say I have two NumPy arrays of different shapes. For simplicity, all the elements of the NumPy array are only 1 that is created using the np.ones() methods. You will get the TypeError when you will multiply the two NumPy arrays.

import numpy as np
array1 = np.ones([10,2])
array2 = np.ones([2,1])
array1 * array2

Output

"<yoastmark

You can see I am getting the error when I am multiplying the two arrays of different shapes.

Solution for operands could not be broadcast together with shapes Error

The two NumPy arrays are matrices and when you try to multiply them using the ” * ” operator then multiplication is done elementwise and the interpreter tries to expand the dimension of the final result.

Instead of multiplying using the operator multiply using the below methods.

Method 1: Use dot product

The first method to remove this error is the use of the numpy.dot product. The dot product will not give the error and your matrices or arrays will be multiplied easily.

Run the below lines of code and you will not get the TypeError.

import numpy as np
array1 = np.ones([10,2])
array2 = np.ones([2,1])
np.dot(array1, array2)

Output

Dot product of two arrays
Dot product of two arrays

Method 2: Using the Transpose Matrix

If you want to multiply two arrays using the ” * ” operator,  then you have to first transpose the matrix and then multiply with the other array or matrix.

Again you will not get the TypeError when you run the below lines of code.

import numpy as np
array1 = np.ones([10,2])
array2 = np.ones([2,1])
array1 * array2.T

Output

Mutliplying two array by transposing one matrix
Mutliplying two array by transposing one matrix

Conclusion

The operands could not be broadcast error you will get when you are multiplying two matrixes or an array of different shapes. The above methods will solve your query easily.

I hope you have liked this tutorial. If you have any doubt then you can contact us for more help.

Join our list

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for signup. A Confirmation Email has been sent to your Email Address.

Something went wrong.

Meet Sukesh ( Chief Editor ), a passionate and skilled Python programmer with a deep fascination for data science, NumPy, and Pandas. His journey in the world of coding began as a curious explorer and has evolved into a seasoned data enthusiast.
 
Thank you For sharing.We appreciate your support. Don't Forget to LIKE and FOLLOW our SITE to keep UPDATED with Data Science Learner