[Numpy 실습] -1

임동윤·2022년 10월 3일
0
post-thumbnail

기초문제 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

profile
AI Tensorflow Python

0개의 댓글