Python math.log() Method



The Python math.log() method is used to compute the natural logarithm (with base e) of a positive numerical value.

The general and simple definition of a logarithm is the inverse of an exponent. That means, the result of a logarithm is the power to which the base of the logarithm will be raised. Hence, the result of this method is always a floating-point value.

A logarithm to the base 'e' can be represented as follows:

logba = p

Where,

  • a: any number
  • b: base of the logarithm
  • p: power to which the base is raised

Note − This function is not accessible directly, so we need to import math module and then we need to call this function using math static object.

Syntax

Following is the syntax for the Python math.log() method −

math.log( x )

Parameters

  • x − This must be a positive numeric value.

Return Value

This method returns natural logarithm of x, for x > 0.

Example

The following example shows the usage of the Python math.log() method. We are passing positive value as an argument to this method here, so the result will also be a positive floating-point value.

import math # This will import the math module

# Create a numeric object
x = 36.789

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

When we run above program, it produces following result −

The logarithm of x is: 3.6051988874479988

Example

But if we pass a negative value as an argument to this method, a ValueError is raised as the domain of a natural logarithm is positive real numbers only.

import math # This will import the math module

# Create a numeric object
x = -76.43

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

If we compile and run the program above, the output is displayed as follows −

Traceback (most recent call last):
  File "main.py", line 7, in 
    ln = math.log(x)
ValueError: math domain error

Example

The method also does not accept arguments other than numeric values.

In the following example, let us create a list containing numeric values and pass it as an argument to this method. A ValueError is expected to be raised as a list is an iterable.

import math # This will import the math module

# Create a list object
x = [12, 45.68, 112, 66.33]

# Calculate the natural logarithm of x
ln = math.log(x)

# Display the log value
print("The logarithm of x is:", ln)

If we execute the program above, a ValueError is raised as follows −

Traceback (most recent call last):
  File "main.py", line 7, in 
ln = math.log(x)
TypeError: must be real number, not list

Example

However, we can use loop statements to iterate through the list given in the example above and find the natural logarithm of the numeric values present in it.

import math # This will import the math module

# Create a list object
x = [12, 45.68, 112, 66.33]

# Using a for loop, iterate through the list
for n in range(0, len(x)):
   # Calculate the natural logarithm of x
   ln = math.log(x[n])
   # Display the log value
   print("The logarithm of x[",n,"] is:", ln)

On compiling and executing the program above, the result is as follows −

The logarithm of x[ 0 ] is: 2.4849066497880004
The logarithm of x[ 1 ] is: 3.821660565347755
The logarithm of x[ 2 ] is: 4.718498871295094
The logarithm of x[ 3 ] is: 4.194642283537465

Example

This log() method works exactly as an inverse to the exp() method. That means, arguments of the log() method are the return values of the exp() method.

In this example, we are creating an object 'x' and passing it as an argument to the exp() method. The return values obtained from this method are stored in another variable 'var'. Now, if the value stored in 'var' is passed as the argument to the log() method, the return value is expected to be the value stored in 'x'.

import math # This will import the math module

# Create a list object
x = 12.34

# Pass x as an argument to the exp() method
var = math.exp(x)

print("The exponent value of x is:", var)

# Calculate the natural logarithm of x
ln = math.log(var)

# Display the log value
print("The logarithm of x is:", ln)

The output for the program above is displayed as follows −

The exponent value of x is: 228661.9520568098
The logarithm of x is: 12.34
python_maths.htm
Advertisements