Generando números equidistantes con NumPy

Beginner

Introducción

En este tutorial, cubriremos el uso de la función numpy.linspace() en la biblioteca NumPy. Esta función se utiliza para generar números equidistantes en un intervalo especificado. Es similar a la función numpy.arange() con la única diferencia de que, en lugar de un tamaño de paso, el número de valores equidistantes entre el intervalo se especifica utilizando el argumento num.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Comprendiendo la sintaxis

La sintaxis de la función numpy.linspace() es la siguiente:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

La función toma varios parámetros:

  • start: El valor inicial del intervalo.
  • stop: El valor final del intervalo.
  • num: El número de muestras equidistantes que se generarán en el intervalo. El valor predeterminado es 50.
  • endpoint: Un valor booleano que indica si se incluye o no el extremo del intervalo. Si es True, entonces se incluye el extremo. Si es False, entonces se excluye. El valor predeterminado es True.
  • retstep: Un valor booleano que indica si se debe devolver el valor del paso, es decir, el espaciado entre los números consecutivos. El valor predeterminado es False.
  • dtype: El tipo de datos de los elementos del array.

Generando una matriz usando linspace()

Para generar una matriz utilizando numpy.linspace(), solo necesita pasar el valor inicial, el valor final y el número de muestras que desea. Aquí hay un ejemplo:

import numpy as np

a = np.linspace(0, 10, num=11)
print(a)

La salida de este código será:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

Excluyendo el punto final

Para excluir el extremo, simplemente establecemos el parámetro endpoint en False. Aquí hay un ejemplo:

b = np.linspace(0, 10, num=10, endpoint=False)
print(b)

La salida de este código será:

[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

Devolviendo el valor del paso

Para devolver el valor del paso o el espaciado entre los números consecutivos generados por linspace(), establece el parámetro retstep en True. Aquí hay un ejemplo:

c, step = np.linspace(0, 10, num=11, retstep=True)
print(c)
print(step)

La salida de este código será:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
1.0

Graficando usando Linspace()

Podemos usar linspace() junto con matplotlib para graficar. Aquí hay un ejemplo:

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.show()

La salida de este código es una gráfica simple de una onda senoidal.

Usando valores no escalares

A partir de las versiones más recientes de NumPy, linspace() admite valores no escalares para los parámetros de inicio y fin. Aquí hay un ejemplo:

start = np.array([0, 1, 2])
end = np.array([6, 7, 8])
d = np.linspace(start, end, num=5, axis=1)
print(d)

La salida de este código es:

[[0.  1.5 3.  4.5 6. ]
 [1.  2.5 4.  5.5 7. ]
 [2.  3.5 5.  6.5 8. ]]

Resumen

En este tutorial, hemos demostrado el uso de la función numpy.linspace() en la biblioteca NumPy. Hemos cubierto la sintaxis, los diversos parámetros y varios ejemplos. Con este conocimiento, ahora puedes generar arrays con espaciado uniforme de manera rápida y eficiente.