Naver Project (Numpy Example)

Jacob Kim·2024년 1월 28일
0

Naver Project Week 1

목록 보기
14/28

Numpy Ex

Numpy import

  • 넘파이 사용을 위해 import
  • 만약 설치가 안되어 있다면 설치해줍니다
!pip install numpy
import numpy as np

문제 1: 배열 생성과 기본 연산

1.1 크기가 10인 0으로 채워진 배열 생성

array1 = np.zeros(10)
print("1.1:", array1)
#1.1: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

1.2 배열의 5번째 원소를 1로 설정

array1[4] = 1
print("1.2:", array1)
#1.2: [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]

1.3 10에서 50까지의 정수를 담은 배열 생성

array2 = np.arange(10, 51)
print("1.3:", array2)
#1.3: [10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
# 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50]

1.4 배열 뒤집기

array2_reversed = array2[::-1]
print("1.4:", array2_reversed)
#1.4: [50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27
# 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10]

1.5 3x3 단위행렬 생성

identity_matrix = np.eye(3)
print("1.5:\n", identity_matrix)
#1.5:
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]

문제 2: 통계

2.1 크기가 30인 무작위 정수 배열 생성, 평균 구하기

random_array = np.random.randint(0, 101, 30)
average = np.mean(random_array)
print("2.1: Average:", average)
#2.1: Average: 61.233333333333334

2.2 5x5 크기의 2차원 배열, 최댓값과 최솟값 찾기

random_2d_array = np.random.rand(5, 5)
max_value = np.max(random_2d_array)
min_value = np.min(random_2d_array)
print("2.2: Max:", max_value, "Min:", min_value)
#2.2: Max: 0.9983206145463124 Min: 0.10373124682360224

문제 3: 인덱싱과 슬라이싱

3.1 크기가 10인 배열 생성, 4번째에서 8번째 원소를 -1로 설정

array3 = np.ones(10)
array3[3:8] = -1
print("3.1:", array3)
3.1: [ 1.  1.  1. -1. -1. -1. -1. -1.  1.  1.]

3.2 10x10 크기의 2차원 배열, 안쪽 8x8 추출

array4 = np.ones((10, 10))
inner_8x8 = array4[1:-1, 1:-1]
print("3.2:\n", inner_8x8)
#3.2:
# [[1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1. 1. 1.]]

문제 4: 불리언 인덱싱

4.1 크기가 10인 무작위 정수 배열 생성

random_int_array = np.random.randint(0, 21, 10)
print("4.1:", random_int_array)
#4.1: [13 17  2 13  3 12  2 19 16 12]

4.2 배열에서 8보다 큰 값만 추출

greater_than_8 = random_int_array[random_int_array > 8]
print("4.2:", greater_than_8)
#4.2: [13 17 13 12 19 16 12]

문제 5: 선형대수

5.1 5x5 크기의 무작위 정수 배열 생성

matrix = np.random.randint(1, 11, (5, 5))
print("5.1:\n", matrix)
#5.1:
# [[ 2  4  3 10  2]
# [ 7  2 10  5  6]
# [ 2  5  1  9  8]
# [ 5  8  3 10  9]
# [ 6  8  3  7  4]]

5.2 역행렬 구하기

inverse_matrix = np.linalg.inv(matrix)
print("5.2:\n", inverse_matrix)
#5.2:
# [[-0.53028693  0.32624867  2.53985122 -3.12008502  1.7162593 ]
# [ 0.31880978 -0.27630181 -1.94580234  2.31668438 -1.06588735]
# [ 0.37300744 -0.12327311 -1.80658874  2.11052072 -1.1370882 ]
# [-0.01381509  0.07863974  0.80765143 -0.96705632  0.44952179]
# [-0.09776833  0.01806589  0.02337938  0.15621679 -0.12646121]]

5.3 내적 구하기

dot_product = np.dot(matrix, inverse_matrix)
print("5.3:\n", dot_product)
#5.3:
# [[ 1.00000000e+00  3.46944695e-17 -2.49800181e-16 -1.05471187e-15
#  -5.55111512e-17]
# [ 2.22044605e-16  1.00000000e+00 -1.19348975e-15 -4.99600361e-16
#  -9.43689571e-16]
# [-1.11022302e-16  1.38777878e-16  1.00000000e+00 -2.44249065e-15
#   1.11022302e-15]
# [ 2.77555756e-16 -3.01841885e-16 -3.34454686e-15  1.00000000e+00
#  -1.30451205e-15]
# [-2.77555756e-16 -1.94289029e-16 -3.60822483e-15  3.21964677e-15
#   1.00000000e+00]]

문제 6: 브로드캐스팅

6.1 3x4 크기의 무작위 정수 배열 생성

matrix_3x4 = np.random.randint(1, 11, (3, 4))
print("6.1:\n", matrix_3x4)
#6.1:
# [[10  6  3  9]
# [ 4  6  1 10]
# [ 5  6  3  3]]

6.2 브로드캐스팅하여 더하기

broadcasted_sum = matrix_3x4 + np.array([1, 2, 3, 4])
print("6.2:\n", broadcasted_sum)
#6.2:
# [[11  8  6 13]
# [ 5  8  4 14]
# [ 6  8  6  7]]
profile
AI, Information and Communication, Electronics, Computer Science, Bio, Algorithms

0개의 댓글