NumPy: Logarithmus mit Basis n

Antworten:

135

Um den Logarithmus mit einer benutzerdefinierten Basis zu erhalten, verwenden Sie math.log:

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

Um den Logarithmus mit einer benutzerdefinierten Basis zu erhalten, verwenden Sie 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]

Beachten Sie, wie zu erwarten, dass der Standardfall von np.log(np.e) == 1.0.


Zur Erinnerung lautet die Regel zur Änderung der Logarithmusbasis :

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

Banane
quelle
37
Ich bestehe darauf, Numpy zu verwenden, wenn ich den Logarithmus eines Arrays von tausend Zahlen benötige.
Davidmh