NumPy Logspace

numpy
Published

July 29, 2023

NumPy has an incredibly useful function numpy.logspace. This function allows you to create arrays of numbers spaced evenly on a logarithmic scale, a crucial feature in various applications like signal processing, image analysis, and machine learning. Unlike numpy.linspace which generates linearly spaced numbers, logspace provides a sequence where the ratio between consecutive numbers remains constant.

Understanding Logspace

The core functionality of logspace is straightforward: it generates a sequence of numbers that are logarithmically distributed. This means the numbers are not evenly spaced, but their logarithms are. This subtle difference is vital when dealing with data spanning several orders of magnitude.

The function takes several key arguments:

  • start: The starting value of the sequence (base raised to this power). Defaults to 0.
  • stop: The ending value of the sequence (base raised to this power).
  • num: The number of samples to generate. Defaults to 50.
  • base: The base of the log scale. Defaults to 10.
  • dtype: The data type of the output array.
  • endpoint: If True (default), stop is included as the last element of the returned array.

Code Examples: Exploring Logspace’s Capabilities

Let’s explore logspace with several practical examples:

Example 1: Basic Logspace Generation

This example generates 10 numbers logarithmically spaced between 100 and 102 (1 and 100) using the default base of 10:

import numpy as np

log_array = np.logspace(0, 2, 10)
print(log_array)

Example 2: Customizing the Base

Here we use a base of 2 to generate numbers logarithmically spaced between 21 and 25 (2 and 32):

import numpy as np

log_array_base2 = np.logspace(1, 5, 10, base=2)
print(log_array_base2)

Example 3: Excluding the Endpoint

This example demonstrates how to exclude the endpoint by setting endpoint to False:

import numpy as np

log_array_no_endpoint = np.logspace(0, 2, 5, endpoint=False)
print(log_array_no_endpoint)

Example 4: Specifying Data Type

We can explicitly specify the data type for increased control:

import numpy as np

log_array_float32 = np.logspace(0, 2, 10, dtype=np.float32)
print(log_array_float32)

These examples highlight the versatility of numpy.logspace. By adjusting its parameters, you can generate logarithmically spaced arrays tailored to your specific needs across various scientific and engineering applications. Experiment with different inputs to fully grasp the power of this function. Remember to install NumPy using pip install numpy if you haven’t already.