데이터 분석/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차원이 반복에 들어옴