HOWTO · Python
Python에서 역 탄젠트 계산
이 튜토리얼은 파이썬에서 역 탄젠트를 계산하는 방법을 보여줍니다.
이 페이지의 내용
역탄젠트(arctan)는 “이 탄젠트값에 해당하는 각도는 무엇인가?”라는 질문에 답합니다. Python에서는 숫자 하나에 math.atan(), 배열의 각 요소를 계산할 때 numpy.arctan(), 입력을 기호식으로 유지하려면 sympy.atan()를 선택하세요. 앞의 두 API는 수치 계산을 수행합니다. SymPy는 값을 계산하도록 요청하기 전까지 관계를 기호식으로 표현합니다.
숫자 하나에는 math.atan() 사용하기
표준 라이브러리의 math 모듈은 숫자 하나를 처리할 때 가장 간단한 선택이며, 별도의 패키지도 필요하지 않습니다. 탄젠트값을 math.atan()에 전달하면 라디안 단위의 각도가 반환됩니다. 애플리케이션의 나머지 부분에서 도 단위를 기대하는 경우에만 math.degrees()로 변환하세요.
다음 예제를 실행해 보세요. 코드와 출력에 있는 영문 레이블은 그대로 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import math
tangent = 1
angle_radians = math.atan(tangent)
angle_degrees = math.degrees(angle_radians)
print(angle_radians)
print(angle_degrees)
이 예제는 숫자 하나를 처리하는 실행 가능한 패턴입니다. 입력에 맞게 tangent 값을 바꾸고, Python 삼각 함수로 계산할 때는 라디안 값을 사용하세요. 도 단위 변환은 값을 표시하거나 도 단위를 명시적으로 사용하는 인터페이스에 유용합니다.
배열에는 numpy.arctan() 사용하기
입력이 배열이거나 여러 값에 같은 연산을 적용하려면 NumPy를 사용하세요. NumPy는 선택적으로 설치하는 의존성입니다. Python 표준 라이브러리에는 NumPy 배열 형식이나 벡터화 함수가 포함되어 있지 않습니다. numpy.arctan()는 요소별로 계산해 라디안 단위의 각도를 반환합니다. numpy.degrees()를 사용하면 배열의 요소별 형태를 유지하면서 각도를 도 단위로 변환할 수 있습니다. 예제 코드와 출력에 포함된 영문 레이블은 번역되지 않고 그대로 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import numpy as np
tangents = np.array([0.0, 1.0, -1.0])
angles_radians = np.arctan(tangents)
angles_degrees = np.degrees(angles_radians)
print(angles_radians)
print(angles_degrees)
수치 데이터가 이미 NumPy 배열로 표현되어 있다면 이 방법을 사용하세요. 일반적인 Python 숫자 하나에는 math.atan()를 사용하면 의존성을 추가하지 않아도 됩니다. 두 API는 탄젠트값을 입력으로 받습니다. 각도를 입력해 탄젠트값을 반환하는 함수는 아닙니다.
기호식에는 sympy.atan() 사용하기
입력에 기호가 포함되어 있고 즉시 부동소수점 각도를 얻는 대신 식을 유지하려면 SymPy를 선택하세요. SymPy는 별도로 설치해야 하는 패키지입니다. 함수를 명시적으로 가져오고 sympy.Symbol로 기호를 만든 다음, x와 같은 식을 sympy.atan()에 전달하면 결과가 기호식으로 유지됩니다. 예제의 영문 출력 레이블은 변경되지 않은 채 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import sympy
from sympy import atan
x = sympy.Symbol("x")
angle = atan(x)
print(angle)
기호식은 대수적 조작에 유용합니다. 수치 결과와는 다르므로, 소수 근삿값이 필요하면 기호에 값을 대입하고 evalf()를 호출하세요. 직접 수치 계산에는 math.atan() 또는 numpy.arctan()를 사용하세요.
역탄젠트 결과 해석하기
유한한 실수 입력에 대해 인수 하나를 받는 역탄젠트는 라디안 단위의 주값을 반환합니다. 이 값은 -pi/2보다 크고 pi/2보다 작은 열린 구간에 있습니다. 양의 무한대와 음의 무한대에 대해서는 math.atan()와 numpy.arctan()가 각각 해당 구간 끝값인 pi/2 또는 -pi/2를 반환합니다. 여러 각도가 같은 탄젠트값을 가질 수 있으므로 atan()만으로 가능한 모든 각도를 복원하거나 탄젠트값 하나만으로 전체 사분면을 알아낼 수는 없습니다. 가로 성분과 세로 성분으로 방향을 계산할 때는 두 인수를 받는 math.atan2(y, x) 또는 numpy.arctan2(y, x)를 사용하세요. 두 함수는 두 성분의 부호를 모두 고려해 사분면 정보를 유지합니다.
값 하나에는 math.atan()를 사용하고 필요한 경우에만 단위를 변환하세요. 배열에는 numpy.arctan()를 사용하고 필요하면 numpy.degrees()로 변환하세요. 대수적 조작에는 sympy.atan()를 사용하고 수치 근삿값이 필요할 때 계산하세요. 기본 반환 단위는 라디안이며, 입력이 단일 숫자, 배열, 기호식 중 무엇인지에 따라 함수를 선택하면 됩니다.