기초문제 1 : 2차원 배열 슬라이싱 연습 1
문제
풀이
- 슬라이싱을 이용하여 값을 변경할 영역에 접근합니다.
- 브로드캐스팅을 이용하여 접근한 영역의 모든 요소에 2씩 곱합니다.
코드
import numpy as np
def solution(arr, y1, x1, y2, x2):
answer = np.array([])
arr[y1:y2+1, x1: x2+1] = arr[y1:y2+1, x1: x2+1] *2
answer = arr
return answer
기초 문제2 : y = w^T + b
문제
풀이
np.dot
함수를 이용해 두 배열의 곱을 구한다.
- 브로드캐스팅을 이용해 행렬의 모든 요소에
b
를 더한다.
코드
import numpy as np
def solution(x, w, b):
answer = 0
answer = np.dot(x,w) + b
return answer
기초 문제3 : 롤러코스터
문제
풀이
arr[i,j]
구문을 이용하여 배열에 접근하여 주어진 조건에 만족하는지 검사 하였다.
코드
import numpy as np
def solution(info):
answer = []
for i in range(len(info[0])):
if info[0, i] <= 150 or info [0, i] >= 195 or info[1,i] >= 140:
answer.append(i)
return answer
기초문제4 : 행렬 곱 실습문제
문제
풀이
- 주어진 조건 "A와 arr의 행렬 곱 연산이 가능할때"의 의미는
A
의 열의 수 와 arr
의 행의 수가 같다는 것이다.
- 조건에 맞는 경우
np.dot()
함수와 브로드캐스팅을 이용하여 연산한다,
코드
import numpy as np
def solution(arr_list):
A = np.array([[0]])
for arr in arr_list:
if len(A[0]) == len(arr):
A = np.dot(A + 1, arr * 2)
answer = A
return answer
기초 문제5 : 이미지 변환
문제
풀이
- 슬라이싱을 이용해
img
배열에서 R,G,B
를 추출한다.
- 브로드캐스팅을 이용하여 흑백이미지로 변환한다.
코드
import numpy as np
import pprint
def solution(img):
H = len(img)
W = len(img[0])
R = img[:,:,0]
G = img[:,:,1]
B = img[:,:,2]
answer = R * 0.3 + G * 0.5 + B * 0.2
return answer