Bird
Raised Fist0
NumPydata~5 mins

np.exp() and np.log() in NumPy

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

We use np.exp() to find the exponential of numbers, which means raising the number e (about 2.718) to the power of those numbers. np.log() helps us find the natural logarithm, which is the reverse of the exponential.

When you want to calculate growth like population or money growing exponentially.
When you need to reverse an exponential calculation to find the original number.
When working with probabilities and statistics that use logarithms.
When transforming data to make it easier to analyze or visualize.
Syntax
NumPy
np.exp(x)
np.log(x)

x can be a single number or an array of numbers.

np.exp() calculates e raised to the power of x.

np.log() calculates the natural logarithm (base e) of x. The input x must be positive.

Examples
Calculate e to the power of 1, which equals e (~2.718).
NumPy
import numpy as np

np.exp(1)
Calculate the natural log of e squared, which returns 2.
NumPy
import numpy as np

np.log(np.exp(2))
Calculate the exponential for each element in the array.
NumPy
import numpy as np

arr = np.array([0, 1, 2])
np.exp(arr)
Calculate the natural log for each element, returning [0, 1, 2].
NumPy
import numpy as np

np.log(np.array([1, np.e, np.e**2]))
Sample Program

This program shows how np.exp() raises e to each number in the array, and then np.log() reverses it back to the original numbers.

NumPy
import numpy as np

# Create an array of values
values = np.array([0, 1, 2, 3])

# Calculate exponential of each value
exp_values = np.exp(values)

# Calculate natural log of the exponential values
log_values = np.log(exp_values)

print("Original values:", values)
print("Exponential values:", exp_values)
print("Log of exponential values:", log_values)
OutputSuccess
Important Notes

Input to np.log() must be positive; otherwise, it will return an error or NaN.

These functions work element-wise on arrays, so you can use them on lists of numbers easily.

Summary

np.exp() calculates e raised to the power of a number or array.

np.log() finds the natural logarithm, which is the inverse of the exponential.

They are useful for growth calculations, reversing exponentials, and data transformations.

Practice

(1/5)
1. What does the function np.exp(x) compute in NumPy?
easy
A. The square root of x
B. The value of e raised to the power x
C. The natural logarithm of x
D. The sine of x

Solution

  1. Step 1: Understand the purpose of np.exp()

    The function np.exp() calculates e (Euler's number, approximately 2.718) raised to the power of the input value.
  2. Step 2: Compare with other options

    Other options describe different functions: natural log is np.log(), square root is np.sqrt(), sine is np.sin().
  3. Final Answer:

    The value of e raised to the power x -> Option B
  4. Quick Check:

    np.exp(x) = e^x [OK]
Hint: Remember: exp means e to the power x [OK]
Common Mistakes:
  • Confusing np.exp() with np.log()
  • Thinking np.exp() calculates logarithm
  • Mixing up with square root or trigonometric functions
2. Which of the following is the correct syntax to compute the natural logarithm of a NumPy array arr?
easy
A. np.log(arr)
B. np.exp(arr)
C. np.ln(arr)
D. np.log10(arr)

Solution

  1. Step 1: Identify the function for natural logarithm

    The natural logarithm in NumPy is computed using np.log().
  2. Step 2: Check other options for correctness

    np.exp() calculates exponentials, np.ln() does not exist, and np.log10() calculates base-10 logarithm.
  3. Final Answer:

    np.log(arr) -> Option A
  4. Quick Check:

    Natural log = np.log() [OK]
Hint: Natural log uses np.log(), not np.ln() or np.log10() [OK]
Common Mistakes:
  • Using np.ln() which is not a valid NumPy function
  • Confusing natural log with base-10 log
  • Using np.exp() instead of np.log()
3. What is the output of the following code?
import numpy as np
arr = np.array([1, 2, 3])
result = np.log(np.exp(arr))
print(result)
medium
A. [1. 2. 3.]
B. [0. 0. 0.]
C. [2.718 7.389 20.086]
D. Error: invalid input

Solution

  1. Step 1: Understand the inner function np.exp(arr)

    Applying np.exp() to [1, 2, 3] gives [e^1, e^2, e^3] ≈ [2.718, 7.389, 20.086].
  2. Step 2: Apply np.log() to the result

    Taking the natural log of these values returns the original array [1, 2, 3] because log and exp are inverse functions.
  3. Final Answer:

    [1. 2. 3.] -> Option A
  4. Quick Check:

    np.log(np.exp(x)) = x [OK]
Hint: log(exp(x)) returns x because they undo each other [OK]
Common Mistakes:
  • Expecting the exponential values instead of original
  • Confusing output with zeros
  • Thinking it causes an error
4. Identify the error in the following code snippet:
import numpy as np
arr = np.array([-1, 0, 1])
result = np.log(arr)
print(result)
medium
A. np.log() should be np.exp()
B. np.array() syntax is incorrect
C. np.log() cannot take zero or negative values
D. No error, code runs fine

Solution

  1. Step 1: Check input values for np.log()

    Natural logarithm is undefined for zero and negative numbers. The array contains -1 and 0, which cause errors or warnings.
  2. Step 2: Understand the error behavior

    NumPy will return -inf or NaN for zero or negative inputs, which is usually an error or warning in calculations.
  3. Final Answer:

    np.log() cannot take zero or negative values -> Option C
  4. Quick Check:

    Log input must be positive [OK]
Hint: Logarithm inputs must be positive numbers only [OK]
Common Mistakes:
  • Ignoring domain restrictions of log function
  • Confusing np.log() with np.exp()
  • Assuming code runs without warnings or errors
5. You have a dataset of positive values stored in a NumPy array data. You want to normalize it by applying the natural logarithm, then reverse the transformation after some processing. Which sequence of operations correctly achieves this?
hard
A. Apply np.exp(data) first, then np.log() on the result to reverse
B. Apply np.sqrt(data) first, then np.log() on the result to reverse
C. Apply np.log10(data) first, then np.exp() on the result to reverse
D. Apply np.log(data) first, then np.exp() on the result to reverse

Solution

  1. Step 1: Understand the normalization step

    Applying np.log(data) transforms data to a logarithmic scale, useful for normalization.
  2. Step 2: Reverse transformation

    To get back original data, apply np.exp() to the logged data because exp is the inverse of log.
  3. Step 3: Check other options

    Apply np.exp(data) first, then np.log() on the result to reverse reverses the order incorrectly, Apply np.log10(data) first, then np.exp() on the result to reverse mixes log base 10 with exp (base e), Apply np.sqrt(data) first, then np.log() on the result to reverse uses sqrt which is unrelated.
  4. Final Answer:

    Apply np.log(data) first, then np.exp() on the result to reverse -> Option D
  5. Quick Check:

    log then exp returns original data [OK]
Hint: Log then exp reverses; order matters [OK]
Common Mistakes:
  • Reversing the order of log and exp
  • Mixing log base 10 with exp
  • Using unrelated functions like sqrt