Python で Operands Could Not Be Broadcast Together With Shapes エラーを修正する方法

Haider Ali 2022年4月14日
Python で Operands Could Not Be Broadcast Together With Shapes エラーを修正する方法

Python では、形状の異なる numpy 配列を一緒にブロードキャストすることはできません。これは、行と列が異なる 2つの 2D 配列を追加できないことを意味します。

しかし、それを行う方法があります。見てください。

Python の operands could not be broadcast together with shapes エラーの修正

形状の異なる 2つの 2D 配列を追加または乗算することはできません。次のコードを見てください。

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

ご覧のとおり、形状の異なる 2つの 2D 配列があります。

最初の配列は 2 行 3 列で、2 番目の配列は 3 行 2 列です。それらを追加すると、このエラーが発生します operands could not be broadcast together with shapes

これは、数学で 2つの行列を追加するのと同じように機能します。

最初の配列の最初の要素は 2 番目の配列の最初の要素と一緒に追加され、2 番目の要素は 2 番目の要素と一緒に追加されます。そのため、形状が一致していない場合、エラーが発生します。

したがって、2つの 2D 配列で同じ形状になるように、再形成機能を使用する必要があります。次のコードでは、最初の配列の形状に従って 2 番目の配列を再形成しています。

形状が同じになったら、2つの配列を追加できます。

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)

出力:

[[2 2 2]
 [2 2 2]]
著者: 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

関連記事 - Python Error

関連記事 - Python NumPy