Hoe maak je natuurlijke logs (bijv. “ln()”) met numpy in Python?

Hoe kan ik het volgende doen met numpy:

ln(x)

Is het gelijk aan:

np.log(x)

Mijn excuses voor zo’n schijnbaar triviale vraag, maar als ik het verschil tussen logen lnbegrijp, is dat lnlogspace e is?


Antwoord 1, autoriteit 100%

np.logis ln, terwijl np.log10je standaard base 10-log is.

Relevante documentatie:

http://docs.scipy.org/doc/numpy/reference/generated /numpy.log.html

http://docs.scipy.org/doc/numpy/reference/generated /numpy.log10.html


Antwoord 2, autoriteit 10%

Correct, np.log(x)is het natuurlijke logboek (basis elog) van x.

Onthoud voor andere bases deze wet van logs: log-b(x) = log-k(x) / log-k(b)waarbij log-bis de log in een willekeurige base b, en log-kis de log in base k, bijv.

hier k = e

l = np.log(x) / np.log(100)

en lis de log-base-100 van x


Antwoord 3, autoriteit 6%

Meestal doe ik dit zo:

from numpy import log as ln

Misschien kan dit je meer op je gemak stellen.


Antwoord 4

Numpy lijkt een aanwijzing te nemen van MATLAB/Octave en gebruikt logals “log base e” of ln. Net als MATLAB/Octave biedt Numpy geen logaritmische functie voor een willekeurige basis.

Als u logverwarrend vindt, kunt u uw eigen object lnmaken dat verwijst naar de numpy.log-functie:

>>> import numpy as np
>>> from math import e
>>> ln = np.log  # assign the numpy log function to a new function called ln
>>> ln(e)
1.0

Antwoord 5

from numpy.lib.scimath import logn
from math import e
#using: x - var
logn(e, x)

Antwoord 6

Je zou eenvoudig het omgekeerde kunnen doen door de basis van log naar e te maken.

import math
e = 2.718281
math.log(e, 10) = 2.302585093
ln(10) = 2.30258093

Other episodes