NumPy : 밑이 n 인 로그


81

로그에 대한 numpy 문서에서 e , 210 을 밑으로하는 로그를 취하는 함수를 찾았습니다 .

import numpy as np
np.log(np.e**3) #3.0
np.log2(2**3)   #3.0
np.log10(10**3) #3.0

그러나 numpy에서 밑이 n (예 : 42) 인 로그를 어떻게 취 합니까?

답변:


145

사용하여 사용자 정의베이스와 로그를 얻으려면 math.log:

import math
number = 74088  # = 42**3
base = 42
exponent = math.log(number, base)  # = 3

사용하여 사용자 정의베이스와 로그를 얻으려면 numpy.log:

import numpy as np
array = np.array([74088, 3111696])  # = [42**3, 42**4]
base = 42
exponent = np.log(array) / np.log(base)  # = [3, 4]

예상대로 기본 케이스 인 np.log(np.e) == 1.0.


다시 말씀 드리지만, 로그 베이스 변경 규칙은 다음과 같습니다.

\ log_b (x) = \ log_c (x) / \ log_c (b)


39
나는 수천 개의 숫자 배열의 로그가 필요할 때 Numpy를 사용한다고 주장합니다.
Davidmh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.