2.9.1 1차원 vs. 2차원
그런데 1차원 입력과 2차원 입력을 섞어서 사용하면 상황이 조금 복잡해집니다. 두 가지 중요한 주의 사항이 있습니다. (1) 1차원 배열과 2차원 배열을 곱할 때는 순서가 중요합니다. (2) 1차원 배열을 다루기 위해서는 np.dot의 작동 원리를 조사해야 합니다.
In [40]:
col_vec = np.arange(0, 50, 10).reshape(5,1) row_vec = np.arange(0,5).reshape(1,5) oned_vec = np.arange(5) np.dot(oned_vec, col_vec)
Out [40]:
array([300])
순서를 바꾸면 파이썬이 오류를 출력하면서 터져 버립니다.
In [41]:
try: np.dot(col_vec, oned_vec) # *쾅!* except ValueError as e: print("I went boom:", e)
I went boom: shapes (5, 1) and (5, ) not aligned: 1 (dim 1) != 5 (dim 0)