curso
Cómo utilizar la función NumPy linspace()
NumPy es un paquete esencial en el ecosistema de la ciencia de datos de Python, que ofrece una amplia gama de funciones para manipular datos numéricos con eficacia. Entre ellas, la función linspace()
se utiliza a menudo para generar valores espaciados uniformemente en un intervalo especificado, lo que la convierte en una herramienta útil para tareas que requieren rangos numéricos precisos, como la visualización de datos y el modelado matemático. En este tutorial, te mostraré los entresijos de la función linspace()
.
La respuesta breve: Cómo utilizarlo np.linspace()
Si tienes prisa, aquí tienes la explicación más rápida de la función linspace()
. La función linspace()
de NumPy genera una matriz de números espaciados uniformemente en un intervalo definido. Aquí, por ejemplo, creamos una matriz que empieza en 0
y termina en 100
, a lo largo de un intervalo de 5 números. Como puedes esperar, devuelve una matriz con [0, 25, 75, 100]
.
import numpy as np
# Basic usage of linspace to create an array from 0 to 100 with 5 elements
linspace_example = np.linspace(0, 100.0, 5)
linspace_example # Return example
# Output: array([ 0., 25., 50., 75., 100.])
Por qué utilizar la función de NumPy linspace()
¿función?
La función linspace()
es un método sencillo y eficaz para generar valores linealmente espaciados, que ofrece una solución útil para diversos escenarios en los que se necesitan rangos numéricos específicos, como en la visualización de datos, simulaciones e incluso en el ajuste fino de algoritmos. Aquí tienes algunos ejemplos de dónde se puede utilizar linspace()
:
- Tareas de visualización de datos: Por ejemplo, al crear un gráfico lineal para representar la trayectoria de un satélite a lo largo del tiempo, se puede utilizar linspace() para generar los intervalos de tiempo en los que se muestrean los datos de posición, garantizando una línea suave y continua en el gráfico.
- Simulaciones: En la modelización financiera, para evaluar el impacto de la variación de los tipos de interés en el precio de los bonos, linspace() puede producir una gama de tipos de interés desde el más bajo posible hasta el más alto previsto, lo que permite un análisis exhaustivo de todo el espectro.
- Investigación científica: Al estudiar los efectos del calentamiento global en los casquetes polares, los investigadores podrían utilizar linspace() para crear una serie de intervalos de tiempo espaciados uniformemente a lo largo de varias décadas. En cada intervalo, podían simular el aumento medio de la temperatura global y su impacto en las tasas de fusión del hielo.
NumPy linspace()
Sintaxis y uso con ejemplos
Como ya hemos dicho, la función linspace()
crea valores linealmente espaciados, lo que resulta útil para diversos cálculos numéricos. Antes de sumergirnos en los ejemplos, veamos los distintos argumentos con los que puedes trabajar al utilizar linspace()
.
NumPy linspace()
Argumentos
start
: El valor inicial de la secuencia.stop
: El valor final de la secuencia.num
(opcional): El intervalo especificado. El valor por defecto es 50, y debe ser no negativo.endpoint
(opcional): Si esTrue
(por defecto),stop
es la última muestra. SiFalse
, el valor de parada no se incluye en la secuencia generada porlinspace()
. Esto significa que la función creará muestras espaciadas uniformemente dentro del intervalo que va desde el inicio hasta justo antes de la parada, excluyendo de hecho el propio valor de parada de la secuencia. Esto puede ser útil cuando necesites un rango que se aproxime pero no alcance el punto final, permitiendo un control más flexible sobre el rango de valores generados.retstep
(opcional): SiTrue
, devuelve (samples
,step
), dondestep
es el espaciado entre muestras.dtype
(opcional): El tipo de la matriz de salida. Si no se da, eldtype
vendrá determinado por los argumentosstart
ystop
.axis
(opcional): El eje en el resultado para almacenar las muestras, sólo cuando se trabaja con matrices multidimensionales.
Crear matrices unidimensionales con linspace()
Ahora que hemos comprendido en profundidad los argumentos disponibles en linspace()
, ¡vamos a ver algunos ejemplos en acción!
Crear una matriz unidimensional espaciada uniformemente utilizando linspace()
Este ejemplo crea una matriz de 7 números espaciados uniformemente entre 0 y 10.
import numpy as np
# Create an array of 7 evenly spaced elements from 0 to 10
uniform_array = np.linspace(0, 10, num=7)
print("Uniform Array")
uniform_array
Uniform Array
array([ 0., 1.66666667, 3.33333333, 5., 6.66666667,8.33333333, 10.])
Excluir el punto final en una matriz unidimensional espaciada uniformemente utilizando linspace()
En este caso, generamos una matriz de 8 números entre 10 y 20, pero excluimos el valor final (20) de la matriz, mostrando el argumento endpoint
en acción.
import numpy as np
# Create an array of 8 elements from 10 to 20, excluding 20
exclude_final_array = np.linspace(10, 20, num=8, endpoint=False)
print("Array Excluding Final Value")
exclude_final_array
Array Excluding Final Value
array([10. , 11.25, 12.5 , 13.75, 15. , 16.25, 17.5 , 18.75])
Incluir el tamaño del paso en una matriz unidimensional espaciada uniformemente utilizando linspace()
Aquí creamos una matriz de 4 elementos entre -5 y 5. También capturamos y mostramos el tamaño del paso.
import numpy as np
# Create an array of 4 elements from -5 to 5 and capture the step size
step_array, step = np.linspace(-5, 5, num=4, retstep=True)
print("Array with Defined Step Size", step_array)
print("Step Size", step)
Array with Defined Step Size [-5. -1.66666667 1.66666667 5. ]
Step Size 3.3333333333333335
Crear matrices N-dimensionales con linspace()
linspace()
también es útil para generar matrices multidimensionales. Aquí mostramos algunos ejemplos de ello en acción.
Generar una matriz bidimensional utilizando linspace()
Este ejemplo ilustra cómo generar una matriz 2D en la que cada fila pasa suavemente del vector [0, 10]
a [5, 15]
, creando un efecto de degradado en 4 pasos.
import numpy as np
# Perform column-wise linear interpolation from [10, 20] to [15, 25] over 3 steps
column_interpolation_array = np.linspace([10, 20], [15, 25], num=3, axis=1)
print("Column-wise Interpolation Array:")
print(column_interpolation_array)
Column-wise Interpolation Array:
[[10. 12.5 15. ]
[20. 22.5 25. ]]
Alternativas a NumPy linspace()
Aunque linspace()
es muy útil, hay alternativas que merece la pena considerar, como la función arange() de NumPy y las comprensiones de listas.
Utilizar NumPy arange()
función
La función arange()
genera valores dentro de un intervalo determinado. A diferencia de linspace()
, se especifica el espaciado entre valores en lugar del número de valores.
# Using arange to generate values from 0 to 10, spaced by 2
arange_example = np.arange(0, 10, 2)
arange_example
# Returns array([0, 2, 4, 6, 8])
# Using linspace() to generate values from 0 to 10, with interval set to 2
linspace_example = np.linspace(0, 10, 2)
linspace_example
# Returns array([0.,10.0])
Utilizar comprensiones de listas
Las comprensiones de listas proporcionan una forma más pitónica de generar listas, aunque carecen de las ventajas de vectorización y la flexibilidad de NumPy linspace()
.
list_comp = [x for x in range(10)]
print(list_comp)
# Outputs [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Reflexiones finales
La función linspace()
de NumPy es una herramienta fundamental en el conjunto de herramientas de la ciencia de datos, ya que ofrece precisión y flexibilidad a la hora de generar secuencias numéricas. Si quieres reforzar tus conocimientos de NumPy, consulta este tutorial sobre Matrices NumPy, esta Hoja de trucos de NumPy, o considera la posibilidad de matricularte en nuestro curso Introducción a NumPy.

Adel es educador de Ciencia de Datos, conferenciante y Evangelista en DataCamp, donde ha publicado varios cursos y formación en directo sobre análisis de datos, aprendizaje automático e ingeniería de datos. Le apasiona difundir las habilidades y la alfabetización en materia de datos en las organizaciones y en la intersección entre tecnología y sociedad. Tiene un máster en Ciencia de Datos y Análisis Empresarial. En su tiempo libre, puedes encontrarle pasando el rato con su gato Louis.
¡Continúa hoy tu viaje de aprendizaje de NumPy!
curso
Escribir código Python eficiente
curso