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

파이썬 NumPy의 scimath.logn() 메서드로 밑 n 로그 계산하는 방법

파이썬 NumPy에서 scimath.logn() 메서드를 사용하면 밑(base)이 n인 로그 값을 손쉽게 계산할 수 있습니다.

이 메서드는 입력값 x에 대한 밑 n 로그를 반환합니다. 만약 x가 스칼라라면 결과도 스칼라로, 배열이라면 배열 형태로 반환됩니다.

특히 주목할 점은, 입력값 x에 음수가 포함된 경우에도 오류 없이 복소수(complex number) 영역에서 결과를 계산하여 반환한다는 것입니다. 일반적인 numpy.log() 함수로는 음수에 대한 로그를 구할 때 NaN이나 에러가 발생하지만, scimath 모듈은 이를 자연스럽게 처리해 줍니다.

매개변수 살펴보기

  • n: 로그의 백(base)이 되는 정수 값입니다.
  • x: 밑 n 로그를 구하고자 하는 대상 값 또는 배열입니다.

단계별 구현 과정

1단계: 필요한 라이브러리 임포트

먼저 NumPy 라이브러리를 불러옵니다.

import numpy as np

2단계: NumPy 배열 생성

array() 메서드를 사용해 음수와 양수가 섞여 있는 테스트용 배열을 생성합니다.

arr = np.array([-4, -8, 8])

3단계: 배열 정보 확인

생성한 배열을 출력하고, 차원(ndim), 데이터 타입(dtype), 형태(shape)를 차례대로 확인합니다.

print("Our Array...\n",arr)
print("\nDimensions of our Array...\n",arr.ndim)
print("\nDatatype of our Array object...\n",arr.dtype)
print("\nShape of our Array object...\n",arr.shape)

4단계: scimath.logn()으로 로그 계산

np.emath.logn() 메서드를 호출하여 밑 2인 로그 값을 계산합니다.

print("\nResult (logn)...\n",np.emath.logn(2, arr))

전체 예제 코드

import numpy as np

# array() 메서드로 NumPy 배열 생성
arr = np.array([-4, -8, 8])

# 배열 출력
print("Our Array...\n",arr)

# 차원 확인
print("\nDimensions of our Array...\n",arr.ndim)

# 데이터 타입 확인
print("\nDatatype of our Array object...\n",arr.dtype)

# 형태(shape) 확인
print("\nShape of our Array object...\n",arr.shape)

# scimath.logn() 메서드로 밑 n 로그 계산
# x가 스칼라면 스칼라를, 배열이면 배열을 반환합니다.
print("\nResult (logn)...\n",np.emath.logn(2, arr))

실행 결과

Our Array...
[-4 -8  8]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(3,)

Result (logn)...
[2.+4.53236014j 3.+4.53236014j 3.+0.j        ]

결과 해석

출력 결과를 보면 흥미로운 패턴을 확인할 수 있습니다.

  • -4에 대해 log₂(-4) = 2 + 4.53236014j — 실수부 2에 허수부가 더해진 복소수로 반환됩니다.
  • -8에 대해 log₂(-8) = 3 + 4.53236014j — 마찬가지로 복소수 형태입니다.
  • 8에 대해 log₂(8) = 3 + 0.j — 양수이므로 순수하게 실수 결과(허수부 0)가 나옵니다.

이처럼 np.emath.logn()은 음수 입력을 자동으로 복소수 영역으로 확장해 처리하기 때문에, 수학적 분석이나 신호 처리 등에서 음수 데이터를 다룰 때 유용하게 활용할 수 있습니다.