UNIT 24
브로드캐스팅
DATA SCIENCE FOR EVERYONE
차원만 같다면 numpy 배열은 다른 배열과 벡터화된 사칙 연산이 가능하다. numpy를 사용하지 않고 두 배열을 각 요소끼리 더하려면 for 루프나 리스트 내포를 사용해야만 한다. numpy에서는 그냥 더하기만 하면 된다.
a = np.arange(4)
b = np.arange(1, 5)
a+b
>>>
array([1, 3, 5, 7])
배열에서 벡터 연산을 브로드캐스팅이라고 한다. 2차원 브로드캐스팅은 두 배열의 모양이 같거나 둘 중 하나가 스칼라 값(다음 예제처럼)이면 가능하다.
a*5
>>>
array([0, 5, 10, 15])
● ● ● ●
더 많게 vs. 더 크게
별 연산자(*)는 파이썬과 numpy에서 다르게 작용한다. 파이썬의 기본 표현식에서 seq * 5는 리스트 seq를 다섯 번 복제한다. 같은 numpy 표현식은 seq 배열의 모든 엘리먼트에 5를 곱한다.