연습문제
다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
import numpy as np test_a = np.array([[4, 8], [2, 9]]) print(test_a * test_a)
- 답 : 1
[[16 64] [ 4 81]]
다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
test_a = np.array([[5, 5, 5], [3, 3, 3]]) print(test_a ** 2)
- 답 : 2
[[25 25 25] [ 9 9 9]]
- A = np.array([[3,22,2],[3,1,5]]), B = np.array([[6,7,9],[2,1,3]])일 때,
다음 중 연산이 실행되지 않고 오류가 발생하는 것은?- 답 : 2
- 설명 : 행, 열이 같은 행렬끼리는 계산이 되지 않음
- 다음 수식을 나타내는 넘파이 코드를 작성하고자 한다.
다음 코드 중 결과가 다른 것을 하나 찾으시오.
Y_true = np.array([1, 1, 0, 1, 1]) Y_pred = np.array([0.23, 0.5, 0.99, 0.69, 0.4])
- 답 : 2
diff = (Y_true - Y_pred) np.sqrt(diff ** 2 / len(Y_true))
- 설명 : 넘파이 배열 형태로 출력
- 다음 코드는 ndarray A의 각 원소들을 평균과 표준편차를 이용하여
정규분포로 정규화시키는 벡터 연산 코드이다. 빈칸에 알맞은 것을 고르시오.
- 답 : 3. mean, std
A = np.array([8, 1, 2, 2, 3, 4, 5, 6, 7, 8]) Z = (A - A.mean(axis=0) / A.std(axis=0)) print(Z)
다음 수식을 넘파이로 구현하고자 한다.
벡터를 입력하여 정규화된 벡터로 나타낼 때,
수식을 올바른 넘파이 코드로 표현한 것이 아닌 것은 무엇인가?
- 답 : 1
def softmax(x): f_x = x.exp / np.sum(x.exp) return f_x
- 설명 : 에러 발생, 아래와 같이 수정
f_x = np.exp(x) / np.sum(np.exp(x))
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
test_a = np.arange(1, 10).reshape(3, 3) test_b = np.arange(6).reshape(2, 3) test_a.dot(test_b.T)
- 답 : 4
array([[ 8, 26], [17, 62], [26, 98]])
- 다음 중 넘파이 배열의 특징으로 적합한 것을 모두 고르시오.
- 답 :
- C의 데이터 타입을 기본으로 배열이 생성된다. / 3. 하나의 데이터 타입만으로 배열이 생성된다.
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
arr = np.arange(16).reshape(4, 4) print(arr.size - arr.shape[0] * arr.ndim)
- 답 : 3. 8
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
arr = np.arange(20).reshape(10, 2) x, y = arr.shape print(arr.reshape(y, x).shape)
- 답 : 2. (2, 10)
- 다음 배열은 벡터이다. 이 배열을 4×6의 행렬로 바꾸려고 할 때 빈칸에 알맞은 것을 고르시오.
arr = np.arange(24)
- 답 : 1. reshape(4, 6)
- 설명 :
arr = arr.reshape(4, 6)
[[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23]]
- 다음 코드를 실행했을 때 결과값이 다른 하나를 고르시오.
arr = np.arange(8) arr
- 답 : 2. arr.reshape(2, -2)
- 설명 : 2차원 배열 형태로 출력
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
arr_1 = np.arange(4) arr_2 = np.arange(4, 0, -1) np.any(arr_1 < arr_2)
- 답 : 2. True
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
a = np.arange(6).reshape(2, 3) b = a > 4 a[b]
- 답 : 1. array([5])
- 다음 find_nearest_value 함수는 벡터와 어떤 값을 입력하면
해당 벡터 값 중 입력된 값과 차이가 가장 작은 값이 반환된다.
해당 함수로 가장 적합한 코드를 찾으시오.X = np.array([1, 2, 3, 4, 5, 6, 7]) target_value = 4.3 find_nearest_value(X, target_value)
- 답 : 3
def find_nearest_value(X, target_value): result = X[np.argmin(np.abs(X - target_value))] return result
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
Z = np.array([6, 6, 6, 4, 7, 9, 1, 8, 8, 4]) Z[Z.argsort()[:5]] = 0 print(Z)
- 답 : 4
[0 0 6 0 7 9 0 8 8 0]
- 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
arr = np.array([[17, 27, 14, 11], [8, 24, 25, 26], [11, 26, 26, 23], [22, 18, 24, 11]]) print(arr[[0, 2, 1]])
- 답 : 1
[[17 27 14 11] [11 26 26 23] [ 8 24 25 26]]
공부
출처
최성철, 『데이터 과학을 위한 파이썬 머신러닝』, 초판, 한빛아카데미, 2022
Ghost