1이 맞춰지면서 브로드캐스팅이 일어난다
(2,3,3) + (1,3,3)

(2,3,3) + (2,1,3)

(2,3,3) + (2,3,1)

#(2,3,3) + (1,3,3)
import numpy as np
A = np.arange(18).reshape((2,3,3))
B = 10*np.arange(9).reshape((1,3,3))
C = A + B
print("A: {}/{}\n{}".format(A.ndim, A.shape, A))
print("B: {}/{}\n{}\n".format(A.ndim, B.shape, B))
print("A + B: {}/{}\n{}".format(A.ndim, C.shape, C))
#(2,3,3) + (2,1,3)
import numpy as np
A = np.arange(18).reshape((2,3,3))
B = 10*np.arange(9).reshape((2,1,3))
C = A + B
print("A: {}/{}\n{}".format(A.ndim, A.shape, A))
print("B: {}/{}\n{}\n".format(A.ndim, B.shape, B))
print("A + B: {}/{}\n{}".format(A.ndim, C.shape, C))
#(2,3,3) + (2,3,1)
import numpy as np
A = np.arange(18).reshape((2,3,3))
B = 10*np.arange(9).reshape((2,3,1))
C = A + B
print("A: {}/{}\n{}".format(A.ndim, A.shape, A))
print("B: {}/{}\n{}\n".format(A.ndim, B.shape, B))
print("A + B: {}/{}\n{}".format(A.ndim, C.shape, C))