문제 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: