Numpy Linspace en Python.

En este tutorial explicamos el comando Linspace de la librería Numpy en Python. Es un comando que nos ayuda a crear una lista de números consecutivos, podemos crear matrices de número consecutivos, indicar el número de elementos que queremos y más opciones que te mostramos en este tutorial.

 

¿Qué hace Linspace en Python?

Linspace es un comando de la librería Numpy de Python que nos permite generar arreglos de número consecutivos. Podemos indicar el valor inicial, el valor final y cuantos elementos queremos que se generen entre estos valores.

Además podemos ingresar arreglos como valores iniciales y finales y nos creará una matriz de valores.

Es similar a arange o a logspace, pero tiene sus propias características, que te mostramos a continuación.

Primero necesitamos importar la librería Numpy, luego ya podremos usar linspace.

import numpy as np

y = np.linspace( 0, 10, 11)

print(y)           ## Imprime 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

El ejemplo anterior nos imprimirá los números del 0 al 10.

¿Por qué del 0 al 10? Porque el primer número es 0 y el último 10, si contamos al cero (0) tenemos 11 números.

 

Parámetros de Linspace Numpy Python.

El comando linspace en Python tiene los siguientes parámetros:

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

Esos son los valores por default para todos los parámetros de linspace, solo start y stop no tienen valores por default.

Start.

Es el número en el que inicia el rango de datos. Este número será el primero en aparecer en el resultado.

Puede ser un valor entero (int), flotante (float) o un arreglo.

 

Stop.

Es el número final del rango que se generará. Por default este número forma parte del resultado, siendo el valor final del resultado.

Pero podemos hacer que este número no sea parte del resultado, con el comando endpoint, que se explica más adelante.

Puede ser un valor entero (int), flotante (float) o un arreglo.

 

num.

Es el número de valores que queremos que tenga el resultado.

Este parámetro se encargará por si solo de ajustar el incremento entre el número inicial y el número final, para tener la cantidad de valores que indicamos.

Por default, su valor es 50, es decir, si no indicamos ningún valor a este parámetro, arrojara un arreglo de 50 valores.

Si queremos una numeración desde el 1 hasta el 10, y queremos 10 valores como resultado podemos hacer lo siguiente:

import numpy as np

y = np.linspace( 1, 10, 10)

print(y)            #imprime: 1, 2, 3, 4, 5, 6, 7, 8, 9,10

 

Start y stop con arreglo, linspace python.

Podemos indicar arreglos en los valores de start y stop. Y obtendremos como resultado una matriz.

Si tenemos los siguientes arreglos:

  • a = [1, 2, 3], lo usaremos como
  • b = [10, 20 ,30], lo usaremos como
  • Y queremos 10 valores, num = 10

Así nos queda el código:

import numpy as np

a = [1, 2, 3]
b = [10, 20 ,30]

y = np.linspace(a, b, 10)
print(y)

Linspace python

Tenemos 3 series de números, porque cada arreglo tiene 3 posiciones. Los rangos o series de números son los siguientes:

  • Desde: a[0] hasta b[0]
  • De a[1] hasta b[1]
  • Y de a[2] hasta b[2]

Así que el resultado es una matriz de 10 por 3. Con el parámetro axis podemos cambiarla a que sea de 3 por 10.

 

Endpoint.

Este parámetro está relacionado con el parámetro stop. Puede ser Falso o Verdadero.

Por default el valor es Verdadero, lo que significa que el valor de stop formará parte del resultado. Si lo cambiamos a Falso, el valor de stop no formará parte del resultado.

import numpy as np
y=np.linspace(1,10,10, endpoint=True)
print(y)                   ##Imprime: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

y=np.linspace(1,10,10, endpoint=False)
print(y)                   ##Imprime: 1, 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1

Numpy linspace endpoint python

 

Retstep.

Este parámetro puede ser Falso o verdadero. Por default es Falso.

Si lo hacemos verdadero el resultado será un arreglo con 2 posiciones:

  • En la primera posición nos arroja la serie de números según los parámetros que usemos.
  • En la segunda mostrará el incremento (step) usado en esa serie de números.
import numpy as np
y=np.linspace(1,10,11, retstep = True)

print(y)

 

En este caso son los números desde el 1 hasta el 10, el 1 y el 10 si se muestran en el resultado y necesitamos 11 valores entre ellos. Por lo tanto el incremento será de 0.9.

Numpy linspace retstep python

Dtype.

Con este parámetro indicamos el tipo de variable para el resultado. Básicamente solo podemos indicar si es entero (int) o flotante (float). Acepta tipo bool, pero regresará solo verdadero o falso y el objetivo de este comando es una secuencia de números.

Por default su valor no está definido (none), se ajusta a la secuencia que se requiera.

Vamos a ver el ejemplo anterior, pero si el valor es entero y si es flotante.

import numpy as np

y=np.linspace(1,10,11, dtype = "int")
print("dtype int:")
print(y)                  ## Imprime: 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

y=np.linspace(1,10,11, dtype = "float")
print("\ndtype float:")
print(y)                  ##Imprime: 1, 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1, 10

Vemos que con el valor “int” como resultado, los números se redondean hacia el valor inferior.

Numpy linspace dtypepython

 

Axis linspace numpy.

Este parámetro es relevante cuando los valores de start y stop, son arreglos. Y nos sirve para ordenar las filas y columnas del arreglo resultante.

Por default su valor es cero (0).

  • Las filas serán tantas como sea el valor de
  • Mientras que las columnas serán el número de posiciones de los arreglos stop y start.

Podemos darle el valor de 1 o de -1 y se invertirá el orden ahora:

  • Las filas serán el número de posiciones de los arreglos.
  • Las columnas serán tantas como sea el valor de

Aquí dejamos un ejemplo:

import numpy as np

a = [1, 2, 3]
b = [10, 20 ,30]

y = np.linspace( a, b, 10, axis = 0)
print("axis = 0")
print(y)

y = np.linspace( a, b, 10, axis = -1)
print("\naxis = -1")
print(y)

Y este es el resultado:

Linspace axis python numpy

Para más tutoriales de Python ve a este enlace.

Te dejamos algunos temas que pueden ser de tu interés.

Matplotlib text Font.

Python try except (trycatch python).

Grados a radianes Python.