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

Python NumPy로 스칼라 값의 최소 데이터 유형 찾기

NumPy의 min_scalar_type() 메서드는 주어진 값이 저장될 수 있는 가장 작은 크기의 데이터 유형을 찾아줍니다. 첫 번째 매개변수에는 최소 데이터 유형을 확인하려는 값이 전달됩니다.

스칼라(scalar) 값이 입력되면 해당 값을 담을 수 있는 가장 작은 크기와 가장 작은 스칼라 종류(scalar kind)를 가진 데이터 유형을 반환합니다. 반면, 배열처럼 스칼라가 아닌(non-scalar) 값을 입력하면 벡터의 dtype을 그대로 수정 없이 반환합니다.

또한 이 메서드는 부동 소수점(float) 값을 정수(int)로 강등하지 않으며, 복소수(complex) 값을 부동 소수점으로 강등하지도 않습니다. 즉, 값의 종류는 항상 유지된다는 점이 특징입니다.

사용 단계

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

import numpy as np

이어서 np.min_scalar_type() 메서드를 사용해 다양한 값들의 최소 데이터 유형을 확인할 수 있습니다.

print("Numpy에서 min_scalar() 메서드 사용\n")
print("결과...", np.min_scalar_type(55))
print("결과...", np.min_scalar_type(38.9))
print("결과...", np.min_scalar_type(-78))
print("결과...", np.min_scalar_type(479))
print("결과...", np.min_scalar_type(2e100))
print("결과...", np.min_scalar_type(-45.8))
print("결과...", np.min_scalar_type(6.5e100))

전체 예제 코드

# 스칼라 값인 경우: 해당 값을 저장할 수 있는 가장 작은 크기,
# 가장 작은 스칼라 종류의 데이터 유형을 반환합니다.
# 스칼라가 아닌 배열인 경우: 벡터의 dtype을 그대로 반환합니다.
# 부동 소수점은 정수로, 복소수는 부동 소수점으로 강등되지 않습니다.

import numpy as np

# numpy.min_scalar_type() 메서드로 최소 데이터 유형을 찾습니다.
# 첫 번째 매개변수는 최소 데이터 유형을 확인할 값입니다.
print("Numpy에서 min_scalar() 메서드 사용\n")
print("결과...", np.min_scalar_type(55))
print("결과...", np.min_scalar_type(38.9))
print("결과...", np.min_scalar_type(-78))
print("결과...", np.min_scalar_type(479))
print("결과...", np.min_scalar_type(2e100))
print("결과...", np.min_scalar_type(-45.8))
print("결과...", np.min_scalar_type(6.5e100))

실행 결과

Numpy에서 min_scalar() 메서드 사용

결과... uint8
결과... float16
결과... int8
결과... uint16
결과... float64
결과... float16
결과... float64

결과 해석

  • 55 → uint8: 양의 정수이므로 부호 없는 8비트 정수로 표현 가능합니다.
  • -78 → int8: 음수이므로 부호 있는 8비트 정수가 필요합니다.
  • 479 → uint16: 8비트 범위(0~255)를 초과하는 양수이므로 16비트가 요구됩니다.
  • 38.9, -45.8 → float16: 작은 부동 소수점 값은 float16으로 충분히 표현됩니다.
  • 2e100, 6.5e100 → float64: 매우 큰 부동 소수점 값은 float64만이 표현할 수 있습니다.