반응형
Numpy 실습
- 기초문제1
문제 설명
임의의 모양을 가진 numpy.ndarray 타입의 2차원 행렬 arr가 주어집니다. Numpy를 사용하여 (y1, x1)에서 (y2, x2)까지 구간에 해당하는 모든 요소의 값에 2를 곱하여 반환하는 함수를 구현하세요.
제한 사항
- y1, x1, y2, x2는 arr의 인덱스를 초과하지 않습니다.
- y2는 y1 이상의 정수입니다.
- x2는 x1 이상의 정수입니다.
예시
다음과 같이 arr와 y1, x1, y2, x2가 주어졌다고 가정하겠습니다.
>>> arr
[[ 1 5 3 4 5 5 4 2 10 9]
[ 7 3 2 5 2 7 8 2 5 3]
[ 3 2 5 6 7 8 2 10 6 5]
[ 4 7 6 6 5 5 6 7 1 2]]
>>> y1, x1, y2, x2
(0, 1, 2, 4)
그럼 함수가 반환하는 배열은 다음과 같습니다.
[[ 1 10 6 8 10 5 4 2 10 9]
[ 7 6 4 10 4 7 8 2 5 3]
[ 3 4 10 12 14 8 2 10 6 5]
[ 4 7 6 6 5 5 6 7 1 2]]
위 예시를 그림으로 나타내면 다음과 같습니다.
풀이
import numpy as np
def solution(arr, y1, x1, y2, x2):
arr[y1:y2+1,x1:x2+1] = arr[y1:y2+1,x1:x2+1]*2
answer = arr
return answer
- 기초문제 2
문제 설명
요소 aₙ로 이루어진 1차원 배열 A와 요소 bₙ로 이루어진 1차원 배열 B에 대하여 내적 연산을 해보겠습니다.
내적 연산
앞선 강의를 통해 다음과 같은 내용을 배웠습니다.
- Numpy dot 메소드에서 np.dot() 함수를 통해 2차원 배열(행렬)간 행렬 곱 연산을 할 수 있다.
1차원 배열(Vector)들을 np.dot()을 통해 연산할 경우 행 벡터와 열 벡터 간의 내적 연산을 합니다. 이 경우 내적 연산의 결과는 두 배열 간 요소 별 곱셈 연산 후 모든 요소를 더한 것과 동일합니다.
이번 문제에서는 1차원 배열 x와 w, 그리고 상수 b가 다음과 같이 주어집니다.
- x₁, x₂, x₃, ..., xₙ 원소들로 이루어진 1차원 배열 x
- w₁, w₂, w₃, ..., wₙ 원소들로 이루어진 1차원 배열 w
- b는 상수
그리고 다음과 같은 식을 통해 y를 얻으려고 합니다.
y = x · wT + b
·는 행렬 곱을 의미한다.
x와 w는 list로, b는 상수로 주어질 때, 행 벡터와 열 벡터 간 내적 연산과 위 식을 참고하여 y를 반환하는 함수를 구현하세요.
제한 사항
- x와 w는 같은 길이를 가진다.
입출력 예
x | w | b | return |
---|---|---|---|
[1, 2, 3] | [3, 4, 5] | 7 | 33 |
입출력 예 설명
입출력 예의 계산 과정을 그림으로 나타내면 다음과 같습니다.
스크린샷 2021-11-16 오전 9.20.41.png
이를 계산하면 (3 + 8 + 15) + 7 = 33이므로 33을 반환합니다.
풀이
import numpy as np
def solution(x, w, b):
answer = 0
x = np.array(x)
w = np.array(w)
answer = x.dot(w) + b
return answer
'AI_Bootcamp' 카테고리의 다른 글
3주차 Day13 Numpy 실습 III (0) | 2022.01.19 |
---|---|
AWS를 활용한 인공지능 모델 배포 chap1 (1) | 2022.01.18 |
3주차 Day11 Numpy 실습 I (0) | 2022.01.17 |
2주차 Day 10 Flask EDA 주말과제 (0) | 2022.01.17 |
2주차 Day 10 Flask와 EDA (0) | 2022.01.17 |