Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy에서 인스턴스를 활용해 정수형의 머신 제한 정보 확인하기

Python Numpy에서 numpy.iinfo() 메서드를 사용하면 정수 타입에 대한 머신 제한(machine limits) 정보를 손쉽게 조회할 수 있습니다. 첫 번째 매개변수는 int_type으로, 정보를 얻고자 하는 정수 데이터 타입을 지정합니다.

이 메서드는 해당 정수 타입으로 생성된 인스턴스를 전달해도 동일하게 동작합니다. 예를 들어 np.int16(20)처럼 값을 가진 인스턴스를 넘기면, 그 타입이 표현할 수 있는 최솟값(min)과 최댓값(max)을 반환받을 수 있습니다.

단계별 진행

먼저 필요한 라이브러리를 임포트합니다.

import numpy as np

여기서 min은 주어진 dtype이 표현할 수 있는 최솟값, max는 표현할 수 있는 최댓값입니다.

인스턴스를 사용하여 int16 타입을 확인해 보겠습니다.

a = np.iinfo(np.int16(20))
print("int16 타입의 최솟값...\n", a.min)
print("int16 타입의 최댓값...\n", a.max)

같은 방식으로 int32 타입도 확인할 수 있습니다.

b = np.iinfo(np.int32(30))
print("\nint32 타입의 최솟값...\n", b.min)
print("int32 타입의 최댓값...\n", b.max)

마지막으로 int64 타입을 확인해 보겠습니다.

c = np.iinfo(np.int64(50))
print("\nint64 타입의 최솟값...\n", c.min)
print("int64 타입의 최댓값...\n", c.max)

전체 예제 코드

import numpy as np

# 정수 타입의 머신 제한 정보를 얻으려면 numpy.iinfo() 메서드를 사용합니다.
# 첫 번째 매개변수는 int_type, 즉 정보를 얻고자 하는 정수 데이터 타입입니다.

# 인스턴스를 사용하여 int16 타입 확인
# min은 주어진 dtype의 최솟값입니다.
# max는 주어진 dtype의 최댓값입니다.
a = np.iinfo(np.int16(20))
print("Minimum of int16 type...\n", a.min)
print("Maximum of int16 type...\n", a.max)

# 인스턴스를 사용하여 int32 타입 확인
b = np.iinfo(np.int32(30))
print("\nMinimum of int32 type...\n", b.min)
print("Maximum of int32 type...\n", b.max)

# 인스턴스를 사용하여 int64 타입 확인
c = np.iinfo(np.int64(50))
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까지, int32는 약 ±21억 범위, int64는 약 ±922경(9.2×10¹⁸) 범위의 값을 표현할 수 있음을 확인할 수 있습니다. 이처럼 iinfo()를 활용하면 각 정수 타입의 저장 가능한 값 범위를 코드 실행 중에 동적으로 파악할 수 있어, 오버플로우 방지나 데이터 타입 선택 시 매우 유용합니다.