더북(TheBook)

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)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.