도(degree) 단위로 주어진 각도 배열의 삼각함수 코사인 값을 구하려면 파이썬 NumPy의 numpy.cos() 메서드를 사용하면 됩니다. 이 메서드는 첫 번째 매개변수 x의 각 요소에 대한 코사인 값을 반환합니다.
첫 번째 매개변수 x는 라디안(radian) 단위의 각도입니다(2π = 360도). 따라서 도 단위의 배열을 그대로 넣으면 안 되고, 반드시 라디안으로 변환한 후 전달해야 합니다. 두 번째와 세 번째 매개변수는 선택 사항입니다.
numpy.cos()의 주요 매개변수
두 번째 매개변수(out)는 결과를 저장할 ndarray입니다. 값을 지정하면 입력값이 브로드캐스팅될 수 있는 형태(shape)여야 하며, 지정하지 않거나 None으로 설정하면 새로 할당된 배열이 반환됩니다. 튜플을 사용하는 경우 길이가 출력 개수와 일치해야 합니다.
세 번째 매개변수(where)는 입력에 브로드캐스팅되는 조건입니다. 조건이 True인 위치에는 ufunc 연산 결과가 저장되고, 나머지 위치에서는 out 배열의 원래 값이 유지됩니다. 단, out=None으로 초기화되지 않은 배열을 생성한 경우 조건이 False인 위치는 초기화되지 않은 상태로 남게 됩니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
각도 배열을 생성합니다. 여기서는 cos 0°, cos 30°, cos 45°, cos 60°, cos 90°, cos 180°를 구해보겠습니다.
arr = np.array((0., 30., 45., 60., 90., 180.))
배열을 화면에 출력합니다.
print("Array...\n", arr)배열의 데이터 타입을 확인합니다.
print("\nArray datatype...\n", arr.dtype)배열의 차원을 확인합니다.
print("\nArray Dimensions...\n", arr.ndim)배열의 요소 개수를 확인합니다.
print("\nNumber of elements in the Array...\n", arr.size)핵심 부분입니다. 도 단위 각도를 라디안으로 변환하려면 π/180을 곱한 후 cos() 메서드에 전달합니다.
print("\nResult...", np.cos(arr * np.pi / 180.))전체 예제 코드
import numpy as np
# 도 단위 각도 배열의 삼각 코사인을 구하려면 numpy.cos() 메서드를 사용합니다.
# 이 메서드는 첫 번째 매개변수 x의 각 요소에 대한 코사인을 반환합니다.
print("The Trigonometric cosine of an array of angles...")
# 각도 배열 생성
cos 0, cos 30, cos 45, cos 60, cos 90, cos 180
arr = np.array((0., 30., 45., 60., 90., 180.))
# 배열 출력
print("Array...\n", arr)
# 배열의 데이터 타입 확인
print("\nOur Array type...\n", arr.dtype)
# 배열의 차원 확인
print("\nOur Array Dimensions...\n", arr.ndim)
# 배열의 요소 개수 확인
print("\nNumber of elements...\n", arr.size)
# 도 단위 각도를 라디안으로 변환하여 코사인 계산
print("\nResult...", np.cos(arr * np.pi / 180.))실행 결과
The Trigonometric cosine of an array of angles... Array... [ 0. 30. 45. 60. 90. 180.] Our Array type... float64 Our Array Dimensions... 1 Number of elements... 6 Result... [ 1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17 -1.00000000e+00]
결과 해석
실행 결과를 보면 다음과 같은 수학적 값들이 확인됩니다.
- cos 0° = 1
- cos 30° ≈ 0.8660254 (√3/2)
- cos 45° ≈ 0.70710678 (√2/2)
- cos 60° = 0.5
- cos 90° ≈ 6.12e-17 — 이론상 0이지만, 부동소수점 연산의 한계로 아주 작은 오차가 발생합니다.
- cos 180° = -1
특히 cos 90°의 결과처럼 부동소수점 연산에서는 완벽한 0이나 정밀한 값이 나오지 않을 수 있으므로, 필요에 따라 np.round() 등을 활용해 결과를 반올림하는 것이 좋습니다.