파이썬 제곱과 제곱근 구하기 예제
파이썬에서 m의 n제곱 형태를 구할 수 있는 방법들을
파이썬 기본 연산자인 **을 이용하는 경우와 math, numpy 라이브러리를 사용한 경우로 나누어
총망라해보는 시간을 가져보도록 하겠습니다.
제곱, 제곱근 표현 방법 1 : 기본 연산자 **
파이썬에서 m의 n제곱을 표현하는 가장 간단한 방법은
기본으로 제공되는 산술 연산자 중 하나인 **를 사용하여 m ** n 형태로 작성하는 것입니다.
n에 자연수가 포함된 가장 기본적인 예시는 아래와 같습니다.
4 ** 2 # 16
3 ** 5 # 243
1.5 ** 3 # 3.375
0.1 ** 4 # 0.00010000000000000002(부동 소수점 오차)
n 자리에 0.5 혹은 1/2을 넣으면 제곱근을 나타낼 수 있으며,
1/3, 1/4 등으로 세제곱근, 네제곱근 등 복잡한 경우도 표현이 가능합니다.
9 ** 0.5 # 3.0
8 ** (1/3) # 2.0
4 ** 1.5 # 8.0
1.5 ** 2.3 # 2.5410306047779248
n에 0 또는 음수를 넣어 1 혹은 역수를 반환하는 경우의 연산도 지원합니다.
4 ** 0 # 1
5 ** -1 # 0.2
10 ** -2 # 0.01
2.5 ** -0.4 # 0.6931448431551464
가장 특수한 경우로, 연산 결과가 허수를 포함한 복소수로 등장하는 때에도
복소수 형태의 결과를 반환하며 연산이 가능합니다.
(-1) ** 0.5 # (6.123233995736766e-17+1j)
(-2.5) ** 1.7 # (2.790722796716866-3.841100402447846j)
제곱, 제곱근 표현 방법 2 : math.pow, math.sqrt
math 라이브러리의 pow 함수를 이용하여 pow(m, n)의 형태로 m ** n을 구할 수 있습니다.
**를 이용한 방식과의 차이는 math.pow를 사용하면
정수끼리의 연산이더라도 결과가 항상 실수 형태로 반환된다는 점과
실수가 아닌 복소수의 경우는 지원하지 않는다는 점입니다.
import math
math.pow(2, 5) # 32.0
math.pow(2, 0.5) # 1.4142135623730951
math.pow(6, -1) # 0.16666666666666666
math.pow(1.5, 2.3) # 2.5410306047779248
math.pow(4, 0) # 1.0
math.pow(-1, 0.5) # ValueError: math domain error
또한, 제곱근도 sqrt(n)의 형태로 n의 제곱근을 곧바로 구하는 것이 가능합니다.
역시 결과는 항상 실수 자료형이며, 음수에 대한 제곱근은 미지원합니다.
math.sqrt(4) # 2.0
math.sqrt(1.44) # 1.2
math.sqrt(0.5) # 0.7071067811865476
math.sqrt(0) # 0.0
math.sqrt(-1) # ValueError: math domain error
제곱, 제곱근 표현 방법 3 : np.power, np.sqrt
조금 더 심화된 경우의 예시로 넘파이 라이브러리의 메소드를 적용하여
제곱 및 제곱근을 구하는 것도 가능합니다.
numpy의 power 함수에서도 power(m, n)의 형태로 m의 n 제곱 연산을 지원하며,
이 경우에는 배열 단위에 통째로 제곱 연산을 수행하는 것도 가능해집니다.
np.power 함수의 사용법과 예제는 아래 링크의 이전 포스팅에서 다루었으니
여기서는 추가 설명을 생략하도록 하겠습니다.
넘파이 라이브러리에서 제곱근도 np.sqrt 함수를 통해서
math.sqrt와 비슷한 방식으로 구할 수 있습니다.
다만, np.sqrt와 math.sqrt의 차이는 넘파이의 sqrt는 배열 단위 통째 연산이 가능하고,
dtype = 'complex' 조건을 설정하면 복소수 결과를 받을 수 있다는 점입니다.
기본적으로는 음수에 대한 제곱근은 np.nan을 반환합니다.
import numpy as np
np.sqrt(4) # 2.0
np.sqrt(1.96) # 1.4
np.sqrt([1, 3, 5, 7, 9]) # array([1. , 1.73205081, 2.23606798, 2.64575131, 3. ])
np.sqrt([[0.64, 1.44],
[3.5, 0.04]])
'''
array([[0.8 , 1.2 ],
[1.87082869, 0.2 ]])'''
np.sqrt(-1) # nan
np.sqrt(-1, dtype = 'complex') # 1j
'Python > 파이썬 기초' 카테고리의 다른 글
파이썬에서 파이(원주율, pi)를 나타내는 방법 : math.pi, np.pi, scipy.pi (0) | 2022.03.25 |
---|---|
파이썬 zip 함수 사용법, for문에서 변수 여러개 순회 예제 (0) | 2022.03.24 |
파이썬 f-string을 이용한 기본 예제와 소수점 지정 출력 방법 정리 (0) | 2022.03.23 |