Python NumPy에서 정수형(integer type)이 표현할 수 있는 최솟값과 최댓값 같은 기계 한계(machine limits) 정보를 확인하려면 numpy.iinfo() 메서드를 사용하면 됩니다. 첫 번째 매개변수인 int_type에는 정보를 조회하고 싶은 정수 데이터 타입을 지정합니다.
실행 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
iinfo 객체의 min 속성은 해당 dtype이 표현할 수 있는 최솟값을, max 속성은 최댓값을 반환합니다.
int16 타입 확인
a = np.iinfo(np.int16)
print("Minimum of int16 type...\n", a.min)
print("Maximum of int16 type...\n", a.max)int32 타입 확인
b = np.iinfo(np.int32)
print("\nMinimum of int32 type...\n", b.min)
print("Maximum of int32 type...\n", b.max)int64 타입 확인
c = np.iinfo(np.int64)
print("\nMinimum of int64 type...\n", c.min)
print("Maximum of int64 type...\n", c.max)전체 예제 코드
import numpy as np
# numpy.iinfo() 메서드로 정수형 타입의 기계 한계 정보를 가져옵니다.
# 첫 번째 매개변수는 int_type으로, 정보를 조회할 정수 데이터 타입을 의미합니다.
# int16 타입 확인
a = np.iinfo(np.int16)
print("Minimum of int16 type...\n", a.min)
print("Maximum of int16 type...\n", a.max)
# int32 타입 확인
b = np.iinfo(np.int32)
print("\nMinimum of int32 type...\n", b.min)
print("Maximum of int32 type...\n", b.max)
# int64 타입 확인
c = np.iinfo(np.int64)
print("\nMinimum of int64 type...\n", c.min)
print("Maximum of int64 type...\n", c.max)실행 결과
Minimum of int16 type... -32768 Maximum of int16 type... 32767 Minimum of int32 type... -2147483648 Maximum of int32 type... 2147483647 Minimum of int64 type... -9223372036854775808 Maximum of int64 type... 9223372036854775807
결과 해석
실행 결과를 보면 각 정수형 타입이 저장할 수 있는 값의 범위는 다음과 같습니다.
- int16: -32,768 ~ 32,767 (16비트 부호 있는 정수)
- int32: -2,147,483,648 ~ 2,147,483,647 (32비트 부호 있는 정수)
- int64: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (64비트 부호 있는 정수)
이처럼 np.iinfo()를 활용하면 배열 연산 시 오버플로우(overflow)를 방지하거나, 데이터에 맞는 적절한 정수형 dtype을 선택하는 데 큰 도움이 됩니다.