-
[엘카데미 챌린지] 실습으로 배우는 Numpy 5일차코딩 챌린지 2023. 7. 21. 11:23
엘카데미 챌린지 5일차 오늘은 브로드캐스팅에 대해 배웠다. 브로드케스팅이란 shape가 다른 array끼리 연산하는 것이다. array의 shape가 달라도 array를 내부적으로 연산 가능한 차원으로 변형시켜 더하듯이 연산을 하는 것 같다.
말로만 설명하면 예시를 들자면
array1 = [[1, 2], [3, 4]] array2 = [5] array1 + array2 = [[6, 7], [8, 9]]
이렇게 array1 은 2x2 matrix고 array2 는 1x1 matrix지만 array2의 element인 5를 복제해 2x2 matrix형태로 만들어준 후 array1과 2x2 matrix형태로 변형된 matrix2를 더해주는 식으로 작동한다.
좀 더 복잡한 경우는
예를 들어 3x1 shape의 array가 있고, 1x3 shape의 array를 더해주는 경우가 있다.
이럴 경우에는 3x1 matrix형태의 array를 3x3 matrix 형태로 만들어주고 1x3 matrix형태의 array를 3x3 matrix형태로 만들어준 후 더한다.
array1 = [[1], [2], [3]] array2 = [[1, 2, 3]] array1 + array2 = [[1, 1, 1], [[1, 2, 3], [[2, 3, 4], [2, 2, 2], + [1, 2, 3], = [3, 4, 5], [3, 3, 3]] [1, 2, 3]] [4, 5, 6]]
이런 식으로 1x3 또는 3x1 matrix를 3x3 matrix로 만들 때 빈 부분의 값은 원래 matrix의 값을 복제해서 채워준다.
어렵지는 않은 개념이지만 단순 연산과는 다르게 잠깐 생각을 해야 계산 결과를 예측할 수 있다.
'코딩 챌린지' 카테고리의 다른 글
[엘카데미 챌린지] 실습으로 배우는 Numpy 7일차 (0) 2023.07.23 [엘카데미 챌린지] 실습으로 배우는 Numpy 6일차 (0) 2023.07.22 [엘카데미 챌린지] 실습으로 배우는 Numpy 4일차 (0) 2023.07.20 [엘카데미 챌린지] 실습으로 배우는 Numpy 3일차 (0) 2023.07.19 [엘카데미 챌린지] 실습으로 배우는 Numpy 2일차 (0) 2023.07.18