관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

Numpy 5 - 브로드캐스팅 본문

인공지능/Numpy & Pandas

Numpy 5 - 브로드캐스팅

huenuri 2024. 7. 31. 14:52

Numpy에서도 브로드캐스팅을 쓴다는 게 참 재미있는 표현인 것 같다. 브로드캐스팅은 오페라나 공연 등에서 콜을 받았을 때 쓰는 용어인 줄 알았는데 네트워크에서도 잘 사용하는 용어였다. 브로드캐스팅은 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식을 의미한다는 것이다. 즉 한 번에 캐스팅을 하는 것을 브로드캐스팅이라고 하나보다.


 

 

 

이론 5 - 브로드 캐스팅

 

브로드캐스팅은 shape이 다른 array끼리도 연산이 가능한 것을 말한다. 이 5라는 데이터(단일행렬)는 3x3 행렬이 마치 더해진 것처럼 연산하는 것이다.

 

 

 

 

 

이 예제에서 보면 [1 2 3] 행렬이 아래로도 내려가 연산이 되는 것을 볼 수 있다. 잡아늘려서 이렇게 1차원이 2차원으로도 되었다.

 

 

 

 

 

 

1차원 행렬이 세로 하나, 가로 하나 있을 때는 어떻게 연산을 할 수 있을까? 이 둘은 3x1, 1x3이다. 첫 번째 행렬은 오른쪽으로 늘렸고 두 번째 행렬은 아래쪽으로 늘려서 연산을 했다.


 

 

 

 

퀴즈 5 - 브로드 캐스팅

 

 

이 문제는 아이패드 굿노트로 직접 손으로 써가며 풀어보았다.

 

 

 

 

 

풀었는데 보기 중에서 답이 없었다. 내가 만든 건 3x3 행렬이기 때문이다. 근데 비슷한 모양을 골라서 답은 맞출 수 있었다.

 

 

 

 

 

 

 

 

 

다시 풀어보기

 

 

해설을 보니 행렬의 모양을 다르게 만들었던 거였다. 아직 배열이 익숙하지 않아서 행과 열을 잘못 쓸 때가 많다. 다시 이렇게 풀었다.

 

 

 

 

 

 

이제는 답을 맞추었다. 하나만 늘려면 되는 거였다.


 

 

 

 

실습 8 - 브로드 캐스팅

 


 

 

 

1. 문제 풀기

 

 

 

 

퀴즈 문제를 손으로 직접 풀었더니 실습 문제는 무척 쉬웠다. 쉽다고 생각했는데 답이 틀렸다.


 

 

 

 

2. 다시 풀어보기

 

 

답은 같아도 문제의 요구 사항에 잘 맞춰야 한다는 걸 알게 되었다. 왜 1x6 행렬은 reshape으로 하지 않는지 궁금하다. 다음에 시간 날 때 한번 생각해 봐야겠다.

 

 

 

 

이제 정답을 맞혔다~


 

 

 

 

 

학습을 마치고

이번 단원은 정말 재미있는 행렬 문제였다. numpy에 대해 흥미를 느끼는 중이다. 학습 예상 시간보다 조금 흘렀는데(1번 퀴즈 문제를 푸느라) 마지막 단원 하나만 남겨둔 상태이다. 언제 다 마치나 했는데 벌써 이렇게 진도가 나갔다.