Python NumPy에서 numpy.common_type() 메서드를 사용하면 여러 입력 배열에 공통으로 적용되는 스칼라 타입을 반환할 수 있습니다. 이 메서드의 첫 번째 매개변수는 입력 배열(또는 여러 개의 배열)입니다.
반환 타입은 항상 부정확(inexact)한, 즉 부동 소수점(floating point) 스칼라 타입이라는 점에 주목할 필요가 있습니다. 입력 배열이 모두 정수형 배열이더라도 마찬가지입니다. 입력 중 하나라도 정수형 배열이 포함되어 있다면, 반환되는 최소 정밀도 타입은 64비트 부동 소수점 dtype(float64)입니다.
또한 int64와 uint64를 제외한 모든 입력 배열은 정보 손실 없이 반환된 dtype으로 안전하게 형 변환(cast)할 수 있습니다.
진행 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
입력 배열에 공통적인 스칼라 타입을 반환하려면 numpy.common_type() 메서드를 사용합니다.
예제
import numpy as np
# numpy.common_type() 메서드를 사용해 입력 배열에 공통적인 스칼라 타입을 반환합니다.
# 첫 번째 매개변수는 입력 배열입니다.
print("Using the common_type() method in Numpy\n")
print("Result...", np.common_type(np.arange(3, dtype=np.float32)))
print("Result...", np.common_type(np.arange(3, dtype=np.float32), np.arange(2)))
print("Result...", np.common_type(np.arange(3), np.array([22, 2.j]), np.array([32.9])))
print("Result...", np.common_type(np.arange(3), np.array([22, 39]), np.array([32.9])))
print("Result...", np.common_type(np.arange(3, dtype=np.int32), np.arange(2)))실행 결과
Using the common_type() method in Numpy Result... <class 'numpy.float32'> Result... <class 'numpy.float64'> Result... <class 'numpy.complex128'> Result... <class 'numpy.float64'> Result... <class 'numpy.float64'>
결과 해석
- float32 배열 단독: 다른 타입과 섞이지 않아 그대로 float32가 반환됩니다.
- float32 배열 + 정수 배열: 정수 배열이 포함되어 최소 정밀도인 float64로 승격됩니다.
- 정수 배열 + 복소수 배열 + 실수 배열: 복소수 값이 포함되어 complex128이 반환됩니다.
- 정수 배열 + 정수 배열 + 실수 배열: 실수 값이 포함되어 float64가 반환됩니다.
- int32 배열 + 정수 배열: 정수 배열이 포함되어 최소 정밀도인 float64가 반환됩니다.