NumPy: Logaritme met grondtal n

Uit de numpy-documentatie over logaritmenheb ik gevonden functies om de logaritme met grondtal te nemen e, 2en 10:

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

Hoe neem ik echter de logaritme met grondtal n(bijv. 42) in numpy?


Antwoord 1, autoriteit 100%

De logaritme met een aangepaste basis ophalen met behulp van math.log:

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

De logaritme met een aangepaste basis verkrijgen met 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]

Die de logaritme basiswijziging-regel gebruikt:

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

Other episodes