How do you do natural logs (e.g. "ln()") with numpy in Python?

591.6k views Asked by At

Using numpy, how can I do the following:

ln(x)

Is it equivalent to:

np.log(x)

I apologise for such a seemingly trivial question, but my understanding of the difference between log and ln is that ln is logspace e?

6

There are 6 answers

1
JoshAdel On BEST ANSWER

np.log is ln, whereas np.log10 is your standard base 10 log.

1
Raviole On

You could simple just do the reverse by making the base of log to e.

import math

e = 2.718281

math.log(e, 10) = 2.302585093
ln(10) = 2.30258093
1
kaveman On

Correct, np.log(x) is the Natural Log (base e log) of x.

For other bases, remember this law of logs: log-b(x) = log-k(x) / log-k(b) where log-b is the log in some arbitrary base b, and log-k is the log in base k, e.g.

here k = e

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

and l is the log-base-100 of x

1
Vincent On

I usually do like this:

from numpy import log as ln

Perhaps this can make you more comfortable.

0
outoftime On
from numpy.lib.scimath import logn
from math import e

#using: x - var
logn(e, x)
0
bfris On

Numpy seems to take a cue from MATLAB/Octave and uses log to be "log base e" or ln. Also like MATLAB/Octave, Numpy does not offer a logarithmic function for an arbitrary base.

If you find log confusing you can create your own object ln that refers to the numpy.log function:

>>> 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