¿Cómo crear una lista de números espaciados uniformemente usando una escala logarítmica con Python?

En este artículo, crearemos una lista de números espaciados uniformemente utilizando una escala logarítmica. Significa que, en una escala logarítmica, la diferencia entre dos muestras adyacentes es la misma. El objetivo se puede lograr utilizando dos funciones diferentes de la biblioteca Python Numpy.

Funciones utilizadas:

  • numpy.logspace: esta función devuelve un número escalado uniformemente en escala logarítmica.

Parámetros:

  • start: el valor inicial de la secuencia es base**start
  • detener: si el punto final es verdadero, entonces el valor final de la secuencia es base ** parada
  • num (Opcional): Especifica el número de muestras para generar
  • punto final (opcional): puede ser verdadero o falso con el valor predeterminado verdadero
  • base (opcional): especifica la base de la secuencia de registro. El valor predeterminado es 10.
  • dtype (opcional): especifica el tipo de array de salida
  • eje (Opcional): El eje en el resultado para almacenar las muestras.

Retorno: Devuelve una array de muestras igualmente espaciadas en escala logarítmica.

  • numpy.geomspace: esta función es similar a la función logspace, solo que la diferencia es que los puntos finales se especifican directamente. En la muestra de salida, cada salida se obtiene multiplicando la salida anterior por la misma constante.

Parámetros:

inicio: Es el valor inicial de la secuencia

detener: si el punto final es verdadero, entonces es el valor final de la secuencia

num (Opcional): Especifica el número de muestras para generar

punto final (opcional): puede ser verdadero o falso con el valor predeterminado verdadero

dtype (opcional): especifica el tipo de array de salida

eje (Opcional): El eje en el resultado para almacenar las muestras.

Retorno: Devuelve una array de muestras igualmente espaciadas en escala logarítmica.

Ejemplo 1: este ejemplo utiliza la función de espacio de registro. En este ejemplo, el inicio se pasa como 1 y la parada se pasa como 3 con la base 10. Entonces, el punto de inicio de la secuencia será 10**1 = 10 y el punto final de la secuencia será 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()

Producción:

Ejemplo 2: Este ejemplo genera la misma lista que el ejemplo anterior usando la función geomspace. Aquí pasamos directamente 10 y 1000 como puntos de inicio y finalización

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()

Producción:

Ejemplo 3: En este ejemplo, el punto final se establece en falso, por lo que generará n+1 muestras y devolverá solo las primeras n muestras, es decir, la parada no se incluirá en la secuencia.

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)

Producción:

[ 10.          15.84893192  25.11886432  39.81071706  63.09573445
 100.         158.48931925 251.18864315 398.10717055 630.95734448]

Publicación traducida automáticamente

Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *