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 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
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません