[Numpy 실습] - 2

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

심화문제 1 : 지뢰찾기

문제

풀이

  • 슬라이싱을 이용하여 board를 네개의 사분면으로 분할
  • 관계 연산자를 이용하여 요소 값 변경

코드

import numpy as np

def solution(board, bombs):
    board_1 = board[:5, :5]
    board_2 = board[:5, 5:]
    board_3 = board[5:, :5]
    board_4 = board[5:, 5:]

    board_1[(board_1 == bombs[0])] = 0
    board_2[(board_2 == bombs[1])] = 0
    board_3[(board_3 == bombs[2])] = 0
    board_4[(board_4 == bombs[3])] = 0
    
    
    board[:5, :5] = board_1 
    board[:5, 5:] = board_2 
    board[5:, :5] = board_3 
    board[5:, 5:] = board_4 
    
    return board

심화문제 2 :데이터 필터

문제

풀이

  • 브로드캐스팅을 이용해 연산한다.

코드

import numpy as np

def solution(data, data_filter):
    
    answer = np.matmul(data, data_filter/3)
    
    return answer

심화문제 3 : 2022 그렙대학교 모집

문제

풀이

  • 각 전형별 최종점수 계산식을 np.array() 에 저장한다.
  • np.dot()슬라이싱을 이용하여 최종점수를 계산한다.

코드

import numpy as np

def solution(data):
    answer = np.array([])
    record = np.array([0.3,0.3,0.4])
    essay = np.array([0.5,0.15,0.2,0.15])
    test = np.array([0.3,0.4,0.3])
    
    for student in data:
        if student[1] == 0:
            if np.dot(record, student[2:5]) >= 0.8:
                answer = np.append(answer,int(student[0]))
        elif student[1] == 1:
            if np.dot(essay, student[5:9]) >= 0.75:
                answer = np.append(answer,int(student[0]))
        elif student[1] == 2: 
            if np.dot(test, student[6:9]) >= 0.75:
                answer = np.append(answer,int(student[0]))
        
    
    
    return answer

profile
AI Tensorflow Python

0개의 댓글