numpy 데이터 표현, 인덱싱, 슬라이싱

ahncheer·2025년 2월 5일

python

목록 보기
15/25

import numpy as np
import를 잊지 말 것

numpy dataType

1. 데이터 타입 확인 방법 : .dtype

1-1. 데이터 타입 축약어 정보 확인 방법 : .kind, .alignment

arr = np.array([1, 2, 3], dtype=np.uint8)
print('arr.dtype : ', arr.dtype)
print('arr.dtype.kind : ', arr.dtype.kind)
print('arr.dtype.alignment : ', arr.dtype.alignment)

2. ndarray 타입 변경 > astype

arr = arr.astype('int8')
print('arr.dtype : ', arr.dtype)

2-1. 데이터 타입 변경시 데이터 범위에 주의

a = np.array([0, 255], dtype=np.uint8)
b = a.astype('int8')
print('a : ', a)
print('b : ', b)

b에 들어가는 데이터 범위가 좁아져 a와 b값이 다른 것을 확인할 수 있음

3. 무한대와 결측치를 표현하는 데이터 표현

nan : Not-a-Number의 약자로 숫자가 아닌 값, 혹은 정의되지 않은 값.
inf, -inf : 무한대의 숫자
위 데이터 표현의 타입은 float타입.

print('np.nan : ', np.nan, ', type(np.nan) : ', type(np.nan))
print('np.inf : ', np.inf, ', type(np.inf) : ', type(np.inf))
print('-np.inf : ', -np.inf, ', type(-np.inf) : ', type(-np.inf))

4. 인덱싱

4-1. 기본형의 경우

arr2 = np.arange(4)
print('arr2[0] : ', arr2[0])

4-2. 2차원 ndarray의 경우

arr[1][2]으로 두번에 걸쳐 인덱싱하는 것보다, arr[1,2]처럼 한번에 인덱싱 하는 코드가 더 빠름

arr3 = np.arange(4).reshape(2, 2)
print('\narr3 : \n', arr3)
print('\narr3[0] : \n', arr3[0])
print('\narr3[0][1] : \n', arr3[0][1])
print('\narr3[0, 1] : \n', arr3[0, 1])

5. 슬라이싱

5-1. 기본형의 경우

arr4 = np.arange(2, 7)
print('arr4[:2] : ', arr4[:2])
target = [0, 2]
print('arr4[target] : ', arr4[target])

5-2. 2차원 ndarray의 경우

arr5 = np.arange(21).reshape(3, 7)
print('\narr5 : \n', arr5)

print('\narr5[ : , :3] : \n', arr5[ : , :3])
print('\narr5[1: , 2:] : \n', arr5[1: , 2:])

참고링크 : https://wikidocs.net/160670, https://wikidocs.net/160671

profile
개인 공부 기록용.

0개의 댓글