arccosh(역쌍곡 코사인)는 다중값 함수(multivalued function)입니다. 즉, 각 x에 대해 cosh(z) = x를 만족하는 수 z가 무수히 많이 존재합니다. 일반적인 관례에 따르면 허수부가 [-π, π] 범위에 있고 실수부가 [0, ∞) 범위에 있는 z 값을 반환합니다.
실수(real-valued) 입력 데이터 타입의 경우 arccosh는 항상 실수 출력을 반환합니다. 실수 또는 무한대로 표현할 수 없는 값에 대해서는 nan을 반환하고 유효하지 않은 부동 소수점(invalid floating point) 오류 플래그를 설정합니다. 반면 복소수(complex-valued) 입력의 경우, arccosh는 분지 절단(branch cut)이 [-∞, 1]에 위치하며 해당 구간의 위쪽 방향에서 연속인 복소 해석 함수(complex analytical function)입니다.
numpy.arccosh() 메서드 개요
배열 요소의 역쌍곡 코사인을 계산하려면 Python NumPy에서 제공하는 numpy.arccosh() 메서드를 사용하면 됩니다. 이 메서드는 입력 배열 x와 동일한 형태(shape)의 배열을 반환하며, x가 스칼라라면 결과 역시 스칼라로 반환됩니다.
각 매개변수는 다음과 같습니다.
첫 번째 매개변수(x): 연산을 수행할 입력 배열입니다.
두 번째 매개변수(out, 선택 사항): 결과가 저장될 ndarray 위치입니다. 이 값을 지정하면 입력들이 브로드캐스팅(broadcasting)되는 형태와 일치해야 하며, 지정하지 않거나 None으로 설정하면 새로 할당된 배열이 반환됩니다.
세 번째 매개변수(where, 선택 사항): 입력 전체에 브로드캐스팅되는 조건입니다. 조건이 True인 위치에는 out 배열에 ufunc 결과가 저장되고, 그 외의 위치에서는 out 배열이 원래 값을 그대로 유지합니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
NumPy의 array() 메서드를 사용하여 배열을 생성합니다.
arr = np.array((0., 30., 45., 60., 90., 180., np.pi*1j/2, np.pi*1j))
생성된 배열을 화면에 출력합니다.
print("Array...\n",arr)배열의 데이터 타입(dtype)을 확인합니다.
print("\nArray datatype...\n",arr.dtype)배열의 차원(dimension)을 확인합니다.
print("\nArray Dimensions...\n",arr.ndim)배열에 포함된 요소의 개수를 확인합니다.
print("\nNumber of elements in the Array...\n",arr.size)마지막으로 배열 요소의 역쌍곡 코사인을 계산하기 위해 np.arccosh() 메서드를 적용합니다.
print("\nResult...",np.arccosh(arr))전체 예제 코드
import numpy as np
# Python NumPy의 numpy.arccosh() 메서드로 배열 요소의 역쌍곡 코사인을 계산합니다.
# 이 메서드는 x와 동일한 shape의 배열을 반환하며, x가 스칼라이면 결과도 스칼라입니다.
print("Get the Trigonometric inverse Hyperbolic cosine of array elements...")
# NumPy의 array() 메서드로 배열 생성
arr = np.array((0., 30., 45., 60., 90., 180., np.pi*1j/2, np.pi*1j))
# 배열 출력
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.arccosh(arr))실행 결과
Get the Trigonometric inverse Hyperbolic cosine of array elements... Array... [ 0.+0.j 30.+0.j 45.+0.j 60.+0.j 90.+0.j 180.+0.j 0.+1.57079633j 0.+3.14159265j] Our Array type... complex128 Our Array Dimensions... 1 Number of elements... 8 Result... [0. +1.57079633j 4.09406667+0.j 4.49968619+0.j 4.78742229+0.j 5.19292599+0.j 5.88609632+0.j 1.23340312+1.57079633j 1.86229574+1.57079633j]
위 실행 결과에서 볼 수 있듯이, 배열은 실수형 값과 복소수형 값이 함께 포함되어 있어 데이터 타입이 complex128로 자동 변환되었습니다. 각 요소에 대해 arccosh 연산이 적용되어 실수부와 허수부로 구성된 결과가 반환되는 것을 확인할 수 있습니다.