데이터 분석/Python

[실습] numpy 배열

toraa 2025. 1. 8. 14:16

[실습1] 다음 배열(arr2d)의 형상을 출력하고 0번축의 0 ~ 2번, 1번축의 2 ~ 4번에 해당하는 데이터를 출력하세요

import numpy as np

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

내 코드>

print(arr2d.shape)
print(arr2d[0:3,2:5])

풀이 코드>

arr2d.shape
arr2d[0:3,2:5]
(4, 5)
array([[3,4,5],
	[7,8,9],
        [2,3,4]])

▶print 함수 안쓰고 바로 출력 가능함!

 

 

[실습2] 배열(arr2d)에 1번축 값들의 합으로 표현된 배열을 만들고 출력하세요

내 코드>

np.sum(arr2d, axis = 1)
array([15, 35, 19, 35])

 

 

[실습3] 배열(arr2d)의 형상을 (2,2,5)로 변환하여 arr3d 변수에 할당하세요

내 코드>

arr3d = np.reshape(arr2d,(2,2,5))
arr3d.shape

풀이 코드>

arr3d = np.reshape(arr2d,(2,2,-1))
arr3d.shape
(2, 2, 5)

▶ 남은 형상을 그대로 자동화해서 넣어주기 때문에 (2,2,5) 대신 (2,2,-1)을 넣어도 됨

 

 

[실습4] arr3d 배열에서 0,1 번축의 데이터는 모두 선택하고 마지막 축의 2번 인덱스에 해당하는 배열만 슬라이싱하여 출력하세요

내 코드>

result = arr3d[:, :, 2]
print(result)

풀이 코드>

arr3d[:,:,2]
#내코드
[[3 7]
 [2 7]]
#풀이코드
array([[3,7],
	[2, 7]])

나처럼 따로 변수와 print함수를 쓰지 않고 바로 슬라이싱해서 출력 가능하다

 

 

[실습5] 중첩 반복 문을 활용하여 arr2d 배열의 데이터에 하나씩 접근하여 출력하세요

내 코드>

for row in arr2d:
    for element in row:
        print(element)

풀이 코드>

for x in arr2d:
    for y in x:
        print(y)
1
2
3
4
5
5
6
7
8
9
9
1
2
3
4
5
6
7
8
9

for문에서 for x in arr 에서 x는 제일 앞축이 해당된다

(for문은 차원을 하나하나 분해한다는 개념)

즉 3차원에선 2차원이 반복으로 들어오고, 2차원에선 1차원이 반복에 들어옴