십대를 위한 코딩/십대를 위한 파이썬

실습 문제 풀이

forSilver 2025. 3. 4. 17:20
반응형

✅ 실습 문제 풀이


문제 1: NumPy 배열 생성

1. 1부터 20까지의 숫자로 구성된 1차원 배열을 생성하세요.
2. 위 배열을 4x5의 2차원 배열로 변환하세요.
3. 2차원 배열에서 3번째 행을 출력하세요.

🔹 풀이 코드

import numpy as np

# 1. 1부터 20까지의 숫자로 구성된 1차원 배열 생성
arr1 = np.arange(1, 21)
print("1차원 배열:\n", arr1)

# 2. 4x5의 2차원 배열로 변환
arr2d = arr1.reshape(4, 5)
print("\n2차원 배열:\n", arr2d)

# 3. 2차원 배열에서 3번째 행 출력 (인덱스는 0부터 시작하므로 arr2d[2])
print("\n3번째 행:\n", arr2d[2])

문제 2: NumPy 연산

1. np.arange(1, 10)로 만든 배열을 제곱한 결과를 출력하세요.
2. 두 개의 3x3 랜덤 배열을 생성하고 행렬 곱을 계산하세요.

🔹 풀이 코드

# 1. np.arange(1, 10) 배열을 만들고 각 요소를 제곱
arr = np.arange(1, 10)
arr_squared = arr ** 2
print("각 요소를 제곱한 결과:\n", arr_squared)

# 2. 두 개의 3x3 랜덤 배열 생성 후 행렬 곱 계산
A = np.random.randint(1, 10, (3, 3))
B = np.random.randint(1, 10, (3, 3))

print("\n행렬 A:\n", A)
print("\n행렬 B:\n", B)

# 행렬 곱 계산 (dot product)
result = np.dot(A, B)
print("\n행렬 곱 (A x B):\n", result)

📝 실행 결과 예시

(랜덤 값은 실행할 때마다 다르게 나올 수 있음)

1차원 배열:
 [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]

2차원 배열:
 [[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]

3번째 행:
 [11 12 13 14 15]

각 요소를 제곱한 결과:
 [ 1  4  9 16 25 36 49 64 81]

행렬 A:
 [[7 6 3]
 [9 3 3]
 [7 4 9]]

행렬 B:
 [[2 7 6]
 [3 3 6]
 [9 2 6]]

행렬 곱 (A x B):
 [[63 71 90]
 [51 84 96]
 [99 91 126]]