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

Python NumPy arcsinh()로 배열 요소의 역쌍곡사인 계산하기

역쌍곡사인(arcsinh) 함수란?

역쌍곡사인(arcsinh)은 다중값(multivalued) 함수입니다. 즉, 각 x에 대해 sinh(z) = x를 만족하는 z가 무수히 많이 존재합니다. NumPy의 관례상 허수부가 [-π/2, π/2] 범위에 속하는 z를 결과로 반환합니다.

실수형 입력 데이터 타입의 경우 arcsinh은 항상 실수 출력을 반환합니다. 다만 실수 또는 무한대로 표현할 수 없는 값이 입력되면 nan을 반환하고 유효하지 않은(invalid) 부동 소수점 오류 플래그를 설정합니다.

복소수 입력에 대해서는 arcsinh이 분지 절단(branch cut)이 [1j, infj]와 [-1j, -infj]인 복소 해석 함수로 동작합니다. 전자의 절단선에서는 오른쪽에서, 후자의 절단선에서는 왼쪽에서 연속입니다. 참고로 역쌍곡사인은 asinh 또는 sinh⁻¹이라고도 불립니다.

numpy.arcsinh() 메서드 사용법

배열 요소의 역쌍곡사인 값을 계산하려면 Python NumPy의 numpy.arcsinh() 메서드를 사용하면 됩니다. 이 메서드는 x와 동일한 형태(shape)의 배열을 반환하며, x가 스칼라라면 스칼라 값을 반환합니다.

주요 매개변수

  • x (첫 번째 매개변수): 역쌍곡사인을 계산할 입력 배열입니다.
  • out (두 번째 매개변수, 선택): 결과가 저장될 ndarray 위치입니다. 제공할 경우 입력이 브로드캐스트되는 형태여야 하며, 제공하지 않거나 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)

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

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

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

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

배열의 요소 개수를 확인합니다.

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

배열 요소들의 역쌍곡사인을 계산하려면 np.arcsinh() 메서드를 호출합니다.

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

전체 예제 코드

import numpy as np

# Python Numpy의 numpy.arcsinh() 메서드로 배열 요소의 역쌍곡사인을 계산합니다.
# 이 메서드는 x와 같은 shape의 배열을 반환하며, x가 스칼라면 스칼라를 반환합니다.

print("배열 요소의 역쌍곡사인 값 구하기...")

# 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.arcsinh(arr))

실행 결과

배열 요소의 역쌍곡사인 값 구하기...
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. +0.j 4.09462222+0.j 4.4999331 +0.j
4.78756118+0.j 5.19298771+0.j 5.88611175+0.j
1.02322748+1.57079633j 1.81152627+1.57079633j]

정리

이처럼 numpy.arcsinh() 메서드를 사용하면 실수뿐만 아니라 복소수가 포함된 배열에 대해서도 각 요소의 역쌍곡사인 값을 한 번에 계산할 수 있습니다. 위 예제에서는 실수 값과 허수 값이 섞여 있어 결과 배열의 데이터 타입이 complex128로 지정된 것을 확인할 수 있습니다.