더북(TheBook)

np.dot(oned_vec, col_vec)은 되지만 np.dot(col_vec, oned_vec)은 안 됩니다. 왜 그럴까요? 오류가 난 입력 형태를 살펴보면 무엇이 잘못되었는지 알 수 있습니다.

 

In [42]:

print(oned_vec.shape, col_vec.shape, sep="\n")
(5, )
(5, 1)

 

연습 삼아 다음을 따라 해 보세요. 1차원 numpy 배열을 만들고 그 모양을 .shape을 이용해서 살펴보세요. .T로 배열을 전치해 보세요. 그리고 그 결과를 보세요. 잠시 NumPy 세계의 미스터리에 대해 곰곰이 생각해 봅시다. 이번에는 2차원 배열로 똑같은 것을 해 보세요. 기대와는 조금 다른 결과를 보게 될 수도 있습니다.

np.dot은 배열 모양이 어떻게 정렬되어 있는지에 민감합니다. 행 케이스들을 살펴봅시다.

 

In [43]:

print(np.dot(row_vec, oned_vec))
try: print(np.dot(oned_vec, row_vec))
except: print("boom")
[30]
boom
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.