user1220022
user1220022

Reputation: 12075

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

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?

Upvotes: 172

Views: 644298

Answers (6)

JoshAdel
JoshAdel

Reputation: 68682

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

Upvotes: 272

bfris
bfris

Reputation: 5805

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

Upvotes: 1

Raviole
Raviole

Reputation: 1

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

Upvotes: -3

Vincent
Vincent

Reputation: 349

I usually do like this:

from numpy import log as ln

Perhaps this can make you more comfortable.

Upvotes: 24

outoftime
outoftime

Reputation: 765

from numpy.lib.scimath import logn
from math import e

#using: x - var
logn(e, x)

Upvotes: -3

thekaveman
thekaveman

Reputation: 4399

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

Upvotes: 25

Related Questions