NumPy float_power() 개요
첫 번째 배열의 요소들을 두 번째 배열의 지수만큼 거듭제곱한 결과를 얻으려면 파이썬 NumPy의 float_power() 메서드를 사용하면 됩니다. 이 메서드는 x1의 각 밑을 x2의 대응되는 지수만큼 거듭제곱한 값을 반환하며, x1과 x2가 모두 스칼라인 경우 스칼라 값을 반환합니다.
- x1: 거듭제곱의 밑(base)이 되는 값 또는 배열
- x2: 거듭제곱의 지수(exponent)가 되는 값 또는 배열
float_power()의 주요 특징
x1의 각 밑을 위치상 대응되는 x2의 지수만큼 거듭제곱합니다. 이때 x1과 x2는 동일한 형태(shape)로 브로드캐스팅 가능해야 합니다.
power() 함수와의 차이점은 정수형과 float16, float32 타입이 최소 정밀도 float64의 부동소수점으로 자동 승격된다는 점입니다. 따라서 결과는 항상 부정확한(inexact) 값으로 반환됩니다. 이러한 설계는 음수 거듭제곱에서도 사용 가능한 결과를 제공하고, 양수 거듭제곱에서 오버플로우가 자주 발생하지 않도록 하기 위한 것입니다.
또한 음수 값을 정수가 아닌 지수로 거듭제곱하면 nan이 반환됩니다. 복소수 결과가 필요하다면 입력값을 복소수로 캐스팅하거나 dtype을 complex로 지정해야 합니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
거듭제곱의 밑(base)을 설정합니다.
x1 = range(6)
밑 배열을 화면에 출력합니다.
print("밑 배열...\n", x1)지수(exponent)를 설정합니다.
x2 = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]
지수 배열을 화면에 출력합니다.
print("\n지수 배열...\n", x2)float_power() 메서드를 사용해 첫 번째 배열의 요소를 두 번째 배열의 지수만큼 거듭제곱한 결과를 계산합니다.
print("\n결과...\n", np.float_power(x1, x2))전체 예제 코드
import numpy as np
# 거듭제곱의 밑
x1 = range(6)
# 밑 배열 출력
print("밑 배열...\n", x1)
# 거듭제곱의 지수
x2 = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]
# 지수 배열 출력
print("\n지수 배열...\n", x2)
# float_power() 메서드로 첫 번째 배열의 요소를 두 번째 배열의 지수만큼 거듭제곱
# x1과 x2가 모두 스칼라인 경우 스칼라 값이 반환됨
print("\n결과...\n", np.float_power(x1, x2))실행 결과
밑 배열... range(0, 6) 지수 배열... [1.0, 2.0, 3.0, 3.0, 2.0, 1.0] 결과... [ 0. 1. 8. 27. 16. 5.]