06_Numpy

Numpy(넘파이)_연습문제

chuuvelop 2025. 3. 11. 17:52
728x90
import numpy as np

 

1. 0부터 9까지의 숫자가 순서대로 하나씩 들어있는 1차원 배열을 생성하는 코드를 작성하시오

np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

2. 모든 요소가 True로 채워진 (3, 3)의 형상을 가지는 다차원 배열을 생성하는 코드를 작성하시오

np.ones((3, 3), dtype = bool)
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]])

 

np.full((3, 3), True)
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]])

 

3. 바깥쪽 테두리에는 1이 채워져있고 내부는 0으로 채워진 (10, 10)형상의 2차원 배열을 생성하는 코드를 작성하시오
arr = np.ones((10, 10))
arr
array([[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., 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.]])

 

arr[1:-1, 1:-1] = 0
arr
array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
       [1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]])

 

4. arr = np.arange(10) 이라고 할 때 arr에서 홀수들만 추출하여 출력하시오
arr = np.arange(10)
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

arr[arr % 2 == 1]
array([1, 3, 5, 7, 9])

 

 

5. arr = np.arange(10) 에서 홀수들을 -1로 수정하여 출력하시오
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

arr[arr % 2 == 1] = -1
arr
array([ 0, -1,  2, -1,  4, -1,  6, -1,  8, -1])

 

6. 배열 arr이 아래와 같을 때, 아래의 지시사항에 따라 데이터 전처리를 수행하는 코드를 작성하시오
arr = np.arange(1, 9).reshape(4, 2)

    1. 각 열의 값이 최솟값이 0, 최댓값이 1이 될 수 있도록 정규화를 하려고 한다
    - 정규화의 공식이 ((각 요소 값 - 해당 열의 최솟값) / (해당 열의 최댓값 - 해당 열의 최솟값))이라고 할 때
    - 위의 공식에 따라 정규화를 수행하면 결과는 array([[0, 0], [0.3333, 0.3333], [0.6666, 0.6666], [1, 1]])이 된다
    - arr를 위의 공식에 따라 정규화를 수행하는 코드를 작성하시오

 

arr = np.arange(1, 9).reshape(4, 2)
arr
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

 

# 해당 열의 최댓값
arr_max = arr.max(axis = 0)
arr_max
array([7, 8])

 

# 해당 열의 최솟값
arr_min = arr.min(axis = 0)
arr_min
array([1, 2])

 

(arr - arr_min)/(arr_max - arr_min)
array([[0.        , 0.        ],
       [0.33333333, 0.33333333],
       [0.66666667, 0.66666667],
       [1.        , 1.        ]])

 

 

# reshape
# 축에 따른 연산 3문제
# 슬라이싱
# 2차원, 3차원

728x90

'06_Numpy' 카테고리의 다른 글

02_선형대수 기본  (0) 2025.03.10
01_넘파이(Numpy)_기초  (0) 2025.03.10
넘파이(NumPy) documentation 확인 방법  (0) 2025.03.10