[넘파이(Numpy)]브로드캐스팅(Broadcasting) - 브로드캐스팅 조건, 예제

Jihwan Jung·2022년 8월 2일
1

🎲넘파이

목록 보기
7/11
post-thumbnail

💡오늘 배울 내용


넘파이에서 서로 다른 모양(shape)의 배열도 일정 조건을 만족하면 연산할 수 있는데, 이 똑똑한 기능을 브로드캐스팅(Broadcasting)이라고 합니다.

브로드캐스팅

🔎브로드캐스팅 조건


1. 원소가 하나인 배열은 어떤 배열이나 브로드캐스팅이 가능

2. 하나의 배열이 1차원 배열인 경우, 브로드캐스팅이 가능
2-1. 두 배열이 모두 2차원 배열이면, 브로드캐스팅이 불가
(예시)
arr1.shape = (3, )
arr2.shape = (3, 3)
np.add(arr1, arr2) - 가능

3. 차원의 짝이 맞을때 브로드캐스팅이 가능
(예시)
arr1.shape = (4, 1)
arr2.shape = (1, 4)
np.add(arr1, arr2) - 가능

🔎브로드캐스팅 예제


arr1 = np.array([[0, 0, 0], 
                 [1, 1, 1],
                 [2, 2, 2]])
                 
arr2 = np.array([5, 6, 7])

print(arr1 + arr2)
>> [[5 6 7]
    [6 7 8]
    [7 8 9]]

(3, 3)배열과 (1, 3) 배열은 서로 짝이 맞고, 하나의 배열이 1차원 배열이므로 브로드캐스팅이 가능합니다.

arr3 = np.array([1, 1, 1])

arr4 = np.array([[0],
                 [1],
                 [2]])
                 
print(np.add(arr3, arr4))
>> [[1 1 1]
    [2 2 2]
    [3 3 3]]

(1, 3)배열과 (3, 1)배열은 서로 짝이 맞고, 하나의 배열이 1차원 배열이므로 브로드캐스팅이 가능합니다.

profile
22.10月~24.07月 공군 암호병 복무중/ 사회 과학과 딥 러닝에 관심이 있는 학부생(CS&E)입니다. 기술과 사회에 대한 이해를 바탕으로, 비즈니스 감각과 기술적 역량을 함께 갖춘 인공지능 프로그래머•데이터 과학자로 성장하고 싶습니다.

0개의 댓글