Article

데이터 과학을 위한 파이썬 머신러닝 3장 연습문제 풀이

4분
데이터 과학을 위한 파이썬 머신러닝 3장 연습문제 풀이

연습문제

  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?

    import numpy as np
    
    test_a = np.array([[4, 8], [2, 9]])
    print(test_a * test_a)
    
    • 답 : 1
    [[16 64]
     [ 4 81]]
    
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?

    test_a = np.array([[5, 5, 5], [3, 3, 3]])
    print(test_a ** 2)
    
    • 답 : 2
    [[25 25 25]
     [ 9  9  9]]
    
  1. A=np.array([[3,22,2],[3,1,5]]), B=np.array([[6,7,9],[2,1,3]])일 때,
    다음 중 연산이 실행되지 않고 오류가 발생하는 것은?
    • 답 : 2
    • 설명 : 행, 열이 같은 행렬끼리는 계산이 되지 않음
  1. 다음 수식을 나타내는 넘파이 코드를 작성하고자 한다.
    다음 코드 중 결과가 다른 것을 하나 찾으시오.
    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))
    
    • 설명 : 넘파이 배열 형태로 출력
  1. 다음 코드는 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. 다음 수식을 넘파이로 구현하고자 한다.
    벡터를 입력하여 정규화된 벡터로 나타낼 때,
    수식을 올바른 넘파이 코드로 표현한 것이 아닌 것은 무엇인가?

    • 답 : 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))
    
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    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]])
    
  1. 다음 중 넘파이 배열의 특징으로 적합한 것을 모두 고르시오.
    • 답 :
    1. C의 데이터 타입을 기본으로 배열이 생성된다. / 3. 하나의 데이터 타입만으로 배열이 생성된다.
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    arr = np.arange(16).reshape(4, 4)
    print(arr.size - arr.shape[0] * arr.ndim)
    
    • 답 : 3. 8
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    arr = np.arange(20).reshape(10, 2)
    x, y = arr.shape
    
    print(arr.reshape(y, x).shape)
    
    • 답 : 2. (2, 10)
  1. 다음 배열은 벡터이다. 이 배열을 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]]
    
  1. 다음 코드를 실행했을 때 결과값이 다른 하나를 고르시오.
    arr = np.arange(8)
    arr
    
    • 답 : 2. arr.reshape(2, -2)
    • 설명 : 2차원 배열 형태로 출력
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    arr_1 = np.arange(4)
    arr_2 = np.arange(4, 0, -1)
    
    np.any(arr_1 < arr_2)
    
    • 답 : 2. True
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    a = np.arange(6).reshape(2, 3)
    b = a > 4
    a[b]
    
    • 답 : 1. array([5])
  1. 다음 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
    
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    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]
    
  1. 다음 코드를 실행할 경우 예상되는 결과값은 무엇인가?
    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]]
    

공부

데이터 과학을 위한 파이썬 머신러닝 : 3. 넘파이

출처

최성철, 『데이터 과학을 위한 파이썬 머신러닝』, 초판, 한빛아카데미, 2022

laetipark

댓글 0개

관련 포스트