[2022 국민대학교 겨울 인공지능 특강] 3주차 2일 학습 내용

하지원·2022년 1월 18일
0

2일차에는 연습문제 2가지가 주어졌다.

1) Numpy를 사용하여 (y1, x1)에서 (y2, x2)까지 구간에 해당하는 모든 요소의 값에 2를 곱하여 반환하는 함수 구현하기

y2는 y1이상, 그리고 x2는 x1 이상의 정수값이다.

우선 리스트는 다음과 같이 주어진다.
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]]
시작하기에 앞서 위의 리스트를 배열화하는 전처리를 해야 한다.
arr = np.array(arr)

그 다음에 (0, 1)에서 (2, 4)까지의 숫자들에 2를 곱하기 위해서 다음 코드를 입력한다.
arr[0:3, 1:5] *= 2

이렇게 하면 해당 범위만 값이 바뀌고, 변수 arr을 출력하면 변환된 배열 값을 얻게된다.
[[ 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

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]]
arr = np.array(arr)
arr[0:3, 1:5] *= 2
print(arr)

2) 요소 aₙ로 이루어진 1차원 배열 A와 요소 bₙ로 이루어진 1차원 배열 B에 대하여 내적 연산하기

간단하다. 내적 연산을 위한 np.dot() 함수를 이용하면 된다.
이 문제에 이용될 행렬과 변수는 다음과 같다.
x=[1, 2, 3], w=[3, 4, 5], b=7
x, w 행렬을 내적하여 마지막에 그 값에 7을 더하면 33을 얻는다.
-> (1)(3) + (2)(4) + (3)(5) + 7 = 33

전체 코드는 다음과 같이 구현할 수 있다.

import numpy as np

x = [1, 2, 3]
w = [3, 4, 5]
b = 7
answer = np.dot(x, w) + b
print(answer)
profile
국민대 전자공학부, 서강대학교 석사과정, 크래프톤 정글 2기

0개의 댓글