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

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

Python Numpy에서 numpy.sinh() 메서드를 사용하면 배열 요소의 쌍곡사인(Hyperbolic sine)을 손쉽게 계산할 수 있습니다. 이 메서드는 수학적으로 1/2 * (np.exp(x) - np.exp(-x)) 또는 -1j * np.sin(1j*x)와 동일한 결과를 반환합니다. 계산 결과는 입력값에 대응하는 쌍곡사인 값이며, 입력 x가 스칼라인 경우 결과 역시 스칼라로 반환됩니다.

numpy.sinh()의 매개변수

첫 번째 매개변수(x): 쌍곡사인을 계산할 입력 배열입니다.

두 번째 매개변수(out, 선택 사항): 결과가 저장될 ndarray입니다. 이 값을 지정하면 입력 배열이 브로드캐스트될 수 있는 형태(shape)여야 합니다. 지정하지 않거나 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)

마지막으로 numpy.sinh() 메서드를 호출하여 배열 요소들의 쌍곡사인 값을 계산합니다.

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

전체 예제 코드

import numpy as np

# Python Numpy의 numpy.sinh() 메서드로 배열 요소의 쌍곡사인을 계산합니다.
# 이 메서드는 1/2 * (np.exp(x) - np.exp(-x)) 또는 -1j * np.sin(1j*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)

# numpy.sinh() 메서드로 배열 요소의 쌍곡사인 계산
print("\nResult...",np.sinh(arr))

실행 결과

Get the Trigonometric Hyperbolic sine of the 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.00000000e+00+0.0000000e+00j 5.34323729e+12+0.0000000e+00j
1.74671355e+19+0.0000000e+00j 5.71003695e+25+0.0000000e+00j
6.10201647e+38+0.0000000e+00j 7.44692100e+77+0.0000000e+00j
0.00000000e+00+1.0000000e+00j -0.00000000e+00+1.2246468e-16j]

실행 결과를 보면 실수부가 큰 값(30, 45, 60 등)의 경우 쌍곡사인 값이 지수적으로 급격히 증가하는 것을 확인할 수 있습니다. 반면 허수부만 있는 값(np.pi*1j/2, np.pi*1j)에 대해서는 삼각함수 사인과 관련된 값이 반환되는데, 이는 오일러 공식에 따라 복소수 영역에서 쌍곡사인과 사인 함수가 밀접하게 연관되어 있기 때문입니다.