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

파이썬 NumPy cos() 함수로 도 단위 각도 배열의 삼각 코사인 계산하기

도(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() 등을 활용해 결과를 반올림하는 것이 좋습니다.