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

Python NumPy로 자연로그 계산하는 방법 – np.log() 활용 가이드


자연로그(natural logarithm)는 지수 함수의 역함수로서 log(exp(x)) = x라는 관계가 성립합니다. 자연로그란 밑(base)이 e(약 2.71828)인 로그를 의미하며, np.log() 메서드는 입력값 x에 대한 자연로그를 요소별(elementwise)로 반환합니다. 만약 x가 스칼라라면 결과 역시 스칼라로 반환됩니다.

np.log() 함수의 매개변수

첫 번째 매개변수는 입력값으로, 배열 형태(array-like)의 데이터를 받습니다. 두 번째 매개변수인 out은 계산 결과가 저장될 위치를 지정합니다. 이 값을 제공할 경우 입력값들이 브로드캐스팅되는 형태(shape)와 일치해야 하며, 제공하지 않거나 None으로 설정하면 새로 할당된 배열이 반환됩니다. 튜플 형태로도 지정할 수 있는데(키워드 인자로만 가능), 이때 튜플의 길이는 출력값의 개수와 같아야 합니다.

로그 함수의 수학적 특성

로그는 다중값 함수(multivalued function)입니다. 즉, 각각의 x에 대해 exp(z) = x를 만족하는 z는 무수히 많이 존재합니다. NumPy에서는 허수부가 [-π, π] 범위에 속하는 z를 반환하는 것이 관례입니다.

실수형 입력 데이터 타입의 경우 log는 항상 실수 값을 반환합니다. 실수 또는 무한대로 표현할 수 없는 값에 대해서는 nan을 반환하고 유효하지 않은(invalid) 부동 소수점 오류 플래그를 설정합니다. 복소수 입력의 경우 log는 분지 절단(branch cut)이 [-inf, 0]에 위치하고 그 위쪽에서 연속인 복소 해석 함수로 동작합니다. 또한 log는 C99 표준을 준수하여 부동 소수점 음의 영(-0)을 무한히 작은 음수로 처리합니다.

구현 단계

먼저 필요한 라이브러리를 임포트합니다 −

import numpy as np

array() 메서드를 사용해 NumPy 배열을 생성합니다 −

arr = np.array([1, 2, np.e, np.e**2])

생성된 배열을 화면에 출력합니다 −

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...\n",arr.shape)

자연로그 log는 지수 함수의 역함수이며 log(exp(x)) = x가 성립하고, 밑이 e인 로그입니다 −

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

전체 예제 코드

import numpy as np

# array() 메서드를 사용해 NumPy 배열 생성
arr = np.array([1, 2, np.e, np.e**2])

# 배열 출력
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...\n",arr.shape)

# 자연로그 log는 지수 함수의 역함수이며, log(exp(x)) = x가 성립합니다.
# 자연로그는 밑이 e인 로그입니다.
print("\nResult (log)...\n",np.log(arr))

실행 결과

Our Array...
[1. 2. 2.71828183 7.3890561 ]

Dimensions of our Array...
1

Datatype of our Array object...
float64

Shape of our Array...
(4,)

Result (log)...
[0. 0.69314718 1. 2.]