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

Python NumPy로 배열 요소의 삼각함수 역사인(arcsin) 구하는 방법

역사인(arcsin)은 다중값 함수(multivalued function)입니다. 각 x에 대해 sin(z) = x를 만족하는 z는 무수히 많이 존재합니다. 이때 관례상 실수부가 [-pi/2, pi/2] 범위에 속하는 각도 z를 반환합니다. 역사인은 asin 또는 sin-1이라고도 불립니다.

실수(real-valued) 입력 데이터 타입의 경우, arcsin은 항상 실수 출력을 반환합니다. 다만 실수나 무한대로 표현할 수 없는 값에 대해서는 nan을 반환하고, 유효하지 않은 부동 소수점 오류 플래그(invalid floating point error flag)를 설정합니다.

복소수(complex-valued) 입력의 경우, arcsin은 복소 해석 함수(complex analytic function)로서 관례적으로 분지 절단(branch cuts)이 [-inf, -1]과 [1, inf]에 위치하며, 전자에서는 위쪽부터, 후자에서는 아래쪽부터 연속입니다.

배열 요소의 삼각함수 역사인을 구하려면 Python Numpy의 numpy.arcsin() 메서드를 사용하면 됩니다. 이 메서드는 첫 번째 매개변수 x의 각 요소에 대한 역사인 값을 반환하며, 여기서 x는 단위원(unit circle) 위의 y좌표를 의미합니다. 두 번째와 세 번째 매개변수는 선택 사항입니다.

numpy.arcsin() 메서드의 매개변수

두 번째 매개변수(out): 결과가 저장될 ndarray 위치입니다. 제공할 경우 입력이 브로드캐스팅(broadcasting)될 수 있는 형태(shape)여야 합니다. 제공하지 않거나 None이면 새로 할당된 배열이 반환됩니다. 튜플(키워드 인자로만 가능)은 출력 개수와 같은 길이를 가져야 합니다.

세 번째 매개변수(where): 조건(condition)이 입력 전체에 브로드캐스팅되어 적용됩니다. 조건이 True인 위치에서는 계산된 값이 사용되고, 그렇지 않은 위치에서는 out 배열의 원래 값이 유지됩니다.

구현 단계

먼저 필요한 라이브러리를 임포트합니다.

import numpy as np

numpy.array() 메서드를 사용하여 배열을 생성하고, 배열 요소의 삼각함수 역사인을 구합니다.

arr = np.array((1, -1, 0, 0.3))

생성한 배열을 화면에 출력합니다.

print("Array...\n",arr)

배열의 데이터 타입(dtype)을 확인합니다.

print("\nArray datatype...\n",arr.dtype)

배열의 차원(ndim)을 확인합니다.

print("\nArray Dimensions...\n",arr.ndim)

배열에 포함된 요소의 개수(size)를 확인합니다.

print("\nNumber of elements in the Array...\n",arr.size)

마지막으로 np.arcsin() 메서드를 호출하여 배열 요소들의 삼각함수 역사인을 계산합니다.

print("\nResult...",np.arcsin(arr))

전체 예제 코드

import numpy as np

# 배열 요소의 삼각함수 역사인을 구하기 위해 numpy.arcsin() 메서드를 사용합니다.
# 이 메서드는 첫 번째 매개변수 x의 각 요소에 대한 역사인 값을 반환합니다.

print("배열 요소의 삼각함수 역사인 구하기...")

# numpy.array() 메서드로 배열 생성
arr = np.array((1, -1, 0, 0.3))

# 배열 출력
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.arcsin(arr))

실행 결과

Get the Trigonometric inverse sine of the array elements...
Array...
[ 1. -1. 0. 0.3]

Our Array type...
float64

Our Array Dimensions...
1

Number of elements...
4

Result... [ 1.57079633 -1.57079633 0. 0.30469265]

실행 결과를 보면, 값 1의 역사인은 pi/2(약 1.57079633), -1의 역사인은 -pi/2(약 -1.57079633), 0의 역사인은 0, 그리고 0.3의 역사인은 약 0.30469265로 계산되었음을 확인할 수 있습니다. 모든 결과는 관례에 따라 [-pi/2, pi/2] 범위 내의 값으로 반환됩니다.