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

Python NumPy에서 배열 요소의 쌍곡 탄젠트 계산하는 방법

Python Numpy에서 배열 요소의 쌍곡 탄젠트(Hyperbolic Tangent)를 계산하려면 numpy.tanh() 메서드를 사용하면 됩니다. 이 메서드는 np.sinh(x)/np.cosh(x) 또는 -1j * np.tan(1j*x)와 수학적으로 동일한 결과를 반환하며, 입력값에 해당하는 쌍곡 탄젠트 값을 계산해 줍니다. 만약 입력 x가 스칼라라면 결과 역시 스칼라 값으로 반환됩니다.

numpy.tanh()의 주요 매개변수

  • 첫 번째 매개변수(x): 쌍곡 탄젠트를 계산할 입력 배열입니다.
  • 두 번째 매개변수(out, 선택 사항): 결과가 저장될 ndarray입니다. 이 매개변수를 제공하면 입력이 브로드캐스팅되는 형태(shape)와 일치해야 합니다. 제공하지 않거나 None으로 설정하면 새로 할당된 배열이 반환됩니다.
  • 세 번째 매개변수(where, 선택 사항): 입력 전체에 브로드캐스팅되는 조건(condition)입니다. 조건이 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)

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

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

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

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

numpy.tanh() 메서드를 사용하여 배열 각 요소의 쌍곡 탄젠트 값을 계산합니다.

print("\nResult...\n",np.tanh(arr))

전체 예제 코드

import numpy as np

# Python Numpy의 numpy.tanh() 메서드로 배열 요소의 쌍곡 탄젠트를 계산합니다.
# 이 메서드는 np.sinh(x)/np.cosh(x) 또는 -1j * np.tan(1j*x)와 동일합니다.

print("Get the Trigonometric Hyperbolic tangent of the array elements...\n")

# 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.tanh() 메서드로 배열 요소의 쌍곡 탄젠트 계산
print("\nResult...\n",np.tanh(arr))

실행 결과

Get the Trigonometric Hyperbolic tangent 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.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j
1.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j
0.+1.63312394e+16j 0.-1.22464680e-16j]

실행 결과를 보면 실수부가 포함된 값들(0, 30, 45, 60, 90, 180)은 모두 쌍곡 탄젠트 값이 1에 가깝게 계산되었고, 허수부가 있는 복소수 입력(np.pi*1j/2, np.pi*1j)에 대해서도 정확한 결과가 반환되었습니다. 이처럼 numpy.tanh()는 실수와 복소수 입력을 모두 지원하며, 범용 함수(ufunc) 특성상 배열 전체에 대해 한 번의 호출로 빠르게 연산할 수 있다는 장점이 있습니다.