python - log2 - ¿Cómo tomar el logaritmo con base n en numpy?
python log10 (1)
De la documentación sobre logaritmos numpy , he encontrado funciones para tomar el logaritmo con base e , 2 y 10 :
import numpy as np
np.log(np.e**3) #3.0
np.log2(2**3) #3.0
np.log10(10**3) #3.0
Sin embargo, ¿cómo tomo el logaritmo con base n (por ejemplo, 42) en números?
Yo sugeriría usar la función incorporada de python math.log()
, ya que numpy no tiene tal función logarítmica incorporada:
import math
math.log(42**3, 42) #3.0
Sin embargo, para las personas que insisten en usar numpy (por ejemplo, cuando usan matrices grandes), siempre existe la opción:
np.log(42**3)/np.log(42) #3.0
np.log(42**np.array([3, 4]))/np.log(42) #array([3., 4.])
Teniendo en cuenta la regla de cambio de base logarítmica: