반응형
문제 설명
목표
배열과 상수의 연산에서 어떻게 브로드캐스팅이 적용되는지 살펴봅시다.
스칼라
스칼라란 단일 차원(0차원)의 값을 의미합니다. 즉, 방향이 없고 오로지 크기만을 가지는 값으로 상수로 표현이 가능합니다.
위 그림에서 화살표는 방향과 크기를 갖습니다. 예를 들어, 파란색의 화살표는 오른쪽 아래 대각선의 방향을 가지며 크기는 길이가 1인 화살표를 2개 가지고 있습니다. 여기서 화살표의 크기는 스칼라라고 할 수 있습니다. 즉, 스칼라는 방향이 없고 오로지 크기만을 가지는 값으로 단일 차원(0차원)이며 상수로 표현할 수 있습니다.
배열과 상수 사이의 덧셈 연산
3 x 3 배열에 10을 더하는 코드를 살펴보겠습니다.
import numpy as np
A = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
]
A = np.array(A)
result = A + 10
print(result)
[[11 11 11]
[12 12 12]
[13 13 13]]
위 코드에서 행하는 연산을 그림으로 나타내면 다음과 같습니다.
상수 10은 A의 모양에 맞춰 3 x 3의 모양을 가진 2차원의 배열로 확장됩니다. 그리고 각 요소별로 덧셈 연산을 행합니다. 이는 덧셈 뿐만 아니라 곱셈, 나눗셈, 뺄셈, 그리고 나머지 연산에도 적용됩니다.
그럼 오른쪽 코드의 주석을 참고하여 빈칸을 채우고 브로드캐스팅이 적용되어 연산된 결과 값을 확인해봅시다.
문제풀이
import numpy as np
a = np.array([[2, 7, 5], [6, 6, 1]])
result = a*2
print(result)
[[ 4 14 10]
[12 12 2]]
'AI_Bootcamp' 카테고리의 다른 글
[MYSQL] INNER JOIN, LEFT JOIN 예제문제 (0) | 2022.01.21 |
---|---|
Numpy 심화 실습 chap4 브로드캐스팅 2 (0) | 2022.01.20 |
3주차 Day14 Numpy 실습 IV (0) | 2022.01.20 |
Numpy 심화 실습 chap2 bool 인덱싱 (0) | 2022.01.19 |
Numpy 심화 실습 chap 1 matmul()와 dot()의 차이 (0) | 2022.01.19 |