ブロードキャストについてお教えください。
Q&A
解決したいこと
python3のブロードキャストがいまいちわからないのでご説明いただけたら嬉しいです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
問題1
A+Bが計算できない組み合わせとして、正しいものを以下の中から選べ。
選択肢
A = np.array([[0,1,2]]) B = np.ones((3,1))
A = np.array([[0,1,2]]) B = np.ones((3,2))
A = np.array([[0,1,2]]) B = np.ones((1,3))
A = np.array([[0,1,2]]) B = np.ones((2,3))
正解
A = np.array([[0,1,2]]) B = np.ones((3,2))
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
問題2
以下のコードを実行した際の出力として正しいものを選べ
import numpy as np
a = np.array([[0,1,10],[0,1,10]])
b = a.copy()
a2 = a.reshape(3,2)
b*a2
選択肢
array([[ 20, 100], [ 20, 100]])
array([[ 0, 1, 10], [ 0, 10, 100], [ 0, 11, 110]])
エラーになり、計算は実行できない
np.array([0,1,10, 0,1,10])
正解
エラーになり、計算は実行できない
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
自分の理解
問題1は
A = np.array([[0,1,2]]) B = np.ones((3,1)) の選択肢がOKで
A = np.array([[0,1,2]]) B = np.ones((3,2))のほうがNGな理由がわかっていないです。
Aが1行3列、Bが3行1列なのと3行2列の場合、どちらのBも行と列の数のどちらかの数は合っていないのでできないと思ってしまうのですが…
問題2もなぜ計算できないのかがわかりません。