З документації numpy щодо логарифмів я знайшов функції прийому логарифму з основою e , 2 і 10 :
import numpy as np
np.log(np.e**3) #3.0
np.log2(2**3) #3.0
np.log10(10**3) #3.0
Однак як я приймаю логарифм з основою n (наприклад, 42) у numpy?
Відповіді:
Щоб отримати логарифм із власною базою, використовуючи 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
.
Нагадуємо, правило зміни базису логарифму :