실습문제 1

문제 1: 0부터 99까지의 정수를 포함하는 10x10 크기의 NumPy 배열을 생성하고, 해당 배열에서 다음 작업을 수행하세요.

답 1:

import numpy as np

# 0부터 99까지의 정수를 포함하는 10x10 크기의 배열 생성
data = np.arange(100).reshape(10, 10)
print(data)

# 홀수로 이루어진 행렬
test_array = data[data % 2 == 1].reshape(-1, 10)
print(test_array)

# Boolean indexing을 통해 3의 배수의 원소들 골라 새로운 배열 만듬
timesThree = test_array[test_array % 3 == 0]
print(timesThree)

# 위에서 새로 얻은 배열을 제곱
squaredTimesThree = timesThree ** 2
print(squaredTimesThree)

이론문제

넘파이를 사용하여 배열을 생성할 때, 배열의 형상(Shape)을 변경할 수 없다. 행렬에서 열벡터를 행벡터로, 행벡터를 열벡터로 바꾼 행렬을 전치행렬이라고 한다. ‘numpy.random.randint(0, 10, 5)’는 0에서 9사이의 무작위 정수 5개로 구성된 배열을 생성합니다. L1-norm과 L2-norm은 기계 학습의 목적에 따라 사용된다. 수학에서의 내적을 구하기 위해서는 넘파이의 np.inner을 사용하여 내적을 구할 수 있다.

답 2:

  1. X numpy.reshape() 함수로 변경 가능하다.
  2. O
  3. O
  4. O
  5. X numpy.dot() 사용. 수학에서의 내적은 i번째의 행벡터와 j번째의 열벡터의 내적을 말함. np.inner는 i번째의 행벡터와 j번째의 행벡터의 내적을 구한다.