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

NumPy find_common_type()으로 표준 강제 변환 규칙에 따른 공통 데이터 타입 결정하기

표준 강제 변환(coercion) 규칙에 따라 여러 데이터 타입의 공통 타입을 결정하려면 Python NumPy의 numpy.find_common_type() 메서드를 사용할 수 있습니다. 첫 번째 인자는 배열을 나타내는 dtype 또는 dtype으로 변환 가능한 객체들의 리스트이며, 두 번째 인자는 스칼라를 나타내는 dtype 또는 dtype으로 변환 가능한 객체들의 리스트입니다.

find_common_type() 메서드는 공통 데이터 타입을 반환합니다. 기본적으로 스칼라 타입(scalar_types)은 무시되고 배열 타입(array_types) 중 우선순위가 가장 높은 타입이 반환됩니다. 단, 스칼라 타입 중 최대값이 배열 타입과 다른 종류(dtype.kind)를 가질 경우에는 그 결과가 반영됩니다. 만약 타입의 종류를 이해할 수 없다면 None을 반환합니다.

참고: 이 함수는 NumPy 1.25부터 지원 중단(deprecated) 상태이므로, 최신 버전에서는 np.result_type()이나 np.promote_types() 사용을 권장합니다.

진행 단계

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

import numpy as np

NumPy의 find_common_type() 메서드를 사용하여 표준 강제 변환 규칙에 따라 공통 타입을 결정합니다 −

print("Result...",np.find_common_type([np.float32], [np.int64, np.float64]))
print("Result...",np.find_common_type([], [np.int64, np.float32, complex]))
print("Result...",np.find_common_type([np.float32], [np.int64, np.float64]))
print("Result...",np.find_common_type([np.float32], [complex]))
print("Result...",np.find_common_type([np.float64], [complex]))
print("Result...",np.find_common_type(['f4', 'i4'], ['c8']))
print("Result...",np.find_common_type([np.int64], [complex]))
print("Result...",np.find_common_type([np.int64], [np.float64]))

예제

import numpy as np

# 표준 강제 변환 규칙에 따라 공통 타입을 결정하려면 numpy.find_common_type() 메서드를 사용합니다.
# 첫 번째 인자: 배열을 나타내는 dtype 또는 dtype으로 변환 가능한 객체들의 리스트
# 두 번째 인자: 스칼라를 나타내는 dtype 또는 dtype으로 변환 가능한 객체들의 리스트

print("Using the find_common_type() method in Numpy\n")

# 표준 강제 변환 규칙에 따라 공통 타입 결정
print("Result...",np.find_common_type([np.float32], [np.int64, np.float64]))
print("Result...",np.find_common_type([], [np.int64, np.float32, complex]))
print("Result...",np.find_common_type([np.float32], [np.int64, np.float64]))
print("Result...",np.find_common_type([np.float32], [complex]))
print("Result...",np.find_common_type([np.float64], [complex]))
print("Result...",np.find_common_type(['f4', 'i4'], ['c8']))
print("Result...",np.find_common_type([np.int64], [complex]))
print("Result...",np.find_common_type([np.int64], [np.float64]))

출력 결과

Using the find_common_type() method in Numpy

Result... float32
Result... complex128
Result... float32
Result... complex128
Result... complex128
Result... complex128
Result... complex128
Result... float64

결과 해석

배열 타입으로 float32가 있고 스칼라로 int64, float64가 주어진 경우, 세 타입 모두 같은 종류(kind)인 실수형이므로 스칼라는 무시되고 float32가 반환됩니다. 반면 스칼라 중 복소수(complex)가 포함되면 종류가 다르므로 반영되어 complex128이 반환됩니다. 배열 타입이 비어 있으면 스칼라 타입들만 고려하여 최대 타입이 결정됩니다.