In this article, we will create a list of uniformly spaced numbers using a logarithmic scale. It means on a log scale difference between two adjacent samples is the same. The goal can be achieved using two different functions from the Python Numpy library.
Functions Used:
- numpy.logspace: This function returns number scaled evenly on logarithmic scale.
Parameters:
- start: Starting value of sequence is base**start
- stop: If endpoint is True then ending value of sequence is base**stop
- num (Optional): Specifies the number of samples to generate
- endpoint (Optional): It can either be true or false with default value true
- base (Optional): Specifies the base of log sequence. Default value is 10.
- dtype (Optional): Specifies the type of output array
- axis (Optional): The axis in the result to store the samples.
Return: It returns array of samples equally spaced on log scale.
- numpy.geomspace: This function is similar to logspace function only difference being end points are specified directly. In Output sample every output is obtained by multiplying previous output by same constant.
Parameters:
start: It is the starting value of sequence
stop: If endpoint is True then it is the ending value of sequence
num (Optional): Specifies the number of samples to generate
endpoint (Optional): It can either be true or false with default value true
dtype (Optional): Specifies the type of output array
axis (Optional): The axis in the result to store the samples.
Return: It returns array of samples equally spaced on log scale.
Example 1: This example uses logspace function. In this example, start is passed as 1 and the stop is passed as 3 with the base being 10. So starting point of the sequence will be 10**1 = 10 and the ending point of the sequence will be 10**3 = 1000.
Python3
# importing the library import numpy as np import matplotlib.pyplot as plt # Initializing variable y = np.ones( 10 ) # Calculating result res = np.logspace( 1 , 3 , 10 , endpoint = True ) # Printing the result print (res) # Plotting the graph plt.scatter(res, y, color = 'green' ) plt.title( 'logarithmically spaced numbers' ) plt.show() |
Output:
Example 2: This example generates the same list as the previous example using geomspace function. Here we directly passed 10 and 1000 as starting and ending points
Python3
# importing the library import numpy as np import matplotlib.pyplot as plt # Initializing variable y = np.ones( 10 ) # Calculating result res = np.geomspace( 10 , 1000 , 10 , endpoint = True ) # Printing the result print (res) # Plotting the graph plt.scatter(res, y, color = 'green' ) plt.title( 'logarithmically spaced numbers' ) plt.show() |
Output:
Example 3: In this example, endpoint is set to false so it will generate n+1 sample and return only first n sample i.e. stop will not be included in the sequence.
Python3
# importing the library import numpy as np import matplotlib.pyplot as plt # Initializing variable y = np.ones( 10 ) # Calculating result res = np.logspace( 1 , 3 , 10 , endpoint = False ) # Printing the result print (res) |
Output:
[ 10. 15.84893192 25.11886432 39.81071706 63.09573445 100. 158.48931925 251.18864315 398.10717055 630.95734448]