[python] NumPy : 밑이 n 인 로그

로그에 대한 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) 인 로그를 어떻게 취 합니까?



답변

사용하여 사용자 정의베이스와 로그를 얻으려면 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)


답변