Introducción a la librería NumPy de Python – Parte 2

Una vez ya visto de qué se trata NumPy y, a su vez, a ver visto las ventajas que tiene está librería, es hora del verdadero trabajo.

Para hacer una matriz NumPy, puedes usar la función np.array(). Todo lo que necesitas hacer es colocarle una lista y, opcionalmente, también puedes especificar el tipo de datos a utilizar.

Recuerda que los tipos de datos están ahí cuando necesites más control sobre cómo se almacenan sus datos en la memoria y en el disco, especialmente en casos en los que estes trabajando con datos grandes, es bueno que sepas controlar el tipo de almacenamiento.

Al mismo tiempo recuerda, que para trabajar con la función np.array() debes asegurarte de que la librería esté presente en el entorno, es decir debes importarla primeramente definiéndola como np.

import numpy as np

array = np.array([[1,2,3,4], [5,6,7,8]], dtype=np.int64)
print(array)

Introducción-a-Numpy-Python-2-1

Matrices Vacías

En ocasiones se requiere crear matrices vacías, esto se refiere a que se requieren marcadores de posición iniciales, que luego pueden ser rellenados. Se puede inicializar matrices con unos o ceros, pero también puedes hacer matrices que se llenan con valores espaciados uniformemente, valores constantes o aleatorios.

Algunas de las instrucciones para crear este tipo de matrices son las siguientes:

Para crear una matriz en donde todos los valores sean igual a 1, solamente debemos utilizar np.ones y colocar la cantidad de filas y columnas que contendrá la matriz.

# Crear una matriz de unos - 3 filas 4 columnas
unos = np.ones((3,4))
print(unos)

Introducción-a-Numpy-Python-2-1-1

Para crear una matriz en donde todos los valores sean igual a 0, se utiliza la instrucción np.zeros y colocamos la cantidad de filas y columnas que contendra la matriz.

# Crear una matriz de ceros - 3 filas 4 columnas
ceros = np.zeros((3,4))
print(ceros)

Introducción-a-Numpy-Python-2-2

En caso de que se requiera crear una matriz con números aleatorios solamente debemos utilizar la instrucción np.random.random y definir el número de filas y columnas.

# Crear una matriz con valores aleatorios
aleatorios = np.random.random((2,2))
print(aleatorios)

Introducción-a-Numpy-Python-2-3

Para crear una matriz vacía se utiliza la instrucción np.empty definiendo el número de filas y columnas.

# Crear una matriz vacía
vacia = np.empty((3,2))
print(vacia)

Introducción-a-Numpy-Python-2-4

Si lo que quieres es crear una matriz que contenga un solo valor en todas las posiciones utilizamos la instrucción np.full, definimos el número de filas y columnas, y a su vez definimos el valor que queremos en todas las posiciones, para nuestro ejemplo ese valor será igual a 8.

# Crear una matriz con un solo valor
full = np.full((2,2),8)
print(full)

Introducción-a-Numpy-Python-2-5

Para crear matrices con valores espaciados uniformemente Podemos utilizer np.arange() y np.linspace(). La diferencia entre estas dos funciones es que para la primera se especifica que se desea crear una matriz que comience en 0 y por pasos de 5 genere los valores para la matriz que está creando. Por su parte para el segundo caso, se requiere una matriz con 5 valores que se encuentren entre 0 y 2.

# Crear una matriz con valores espaciados uniformemente
espacio1 = np.arange(0,30,5)
print(espacio1)

espacio2 = np.linspace(0,2,5)
print(espacio2)

Introducción-a-Numpy-Python-2-6

NumPy también permite crear matrices identidad utilizando las funciones np.eye() y np.identity(). Recuerda que una matriz de identidad es una matriz cuadrada de la cual todos los elementos en la diagonal principal son igual a 1 y todos los demás elementos son igual a 0.

# Crear una matriz identidad
identidad1 = np.eye(4,4)
print(identidad1)

identidad2 = np.identity(4)
print(identidad2)

Introducción-a-Numpy-Python-2-8

Inspeccionar las matrices de NumPy

NumPy contiene varias instrucciones para obtener más información sobre las matrices que se han creado utilizando esta librería algunas de ellas son las siguientes:

Puedes encontrar la dimensión de la matriz, ya sea una matriz bidimensional o una matriz dimensional única, utilizando la función “ndim”.

# Conocer las dimensiones de una matriz
a = np.array([(1,2,3),(4,5,6)])
print(a.ndim)

Introducción-a-Numpy-Python-2-9

También puedes encontrar el tipo de datos de los elementos que están almacenados en una matriz, para ello utilizar la función “dtype”, el cual arrojará el tipo de datos junto con el tamaño.

# Conocer el tipo de los datos
a = np.array([(1,2,3)])
print(a.dtype)

Introducción-a-Numpy-Python-2-1-2

Del mismo modo, puedes encontrar el tamaño y la forma de la matriz con la función “size” y “shape”, respectivamente.

# Conocer el tamaño y forma de la matriz
a = np.array([(1,2,3,4,5,6)])
print(a.size)
print(a.shape)

Introducción-a-Numpy-Python-2-2-1

Cambio de tamaño y forma de las matrices

Otras de las operaciones que podemos realizar con NumPy es el cambio de tamaño y forma de las matrices, veamos prácticamente a que se refiere esto.

Introducción-a-Numpy-Python-2-3-1

El cambio de la forma de las matrices es cuando se cambia el número de filas y columnas que le da una nueva vista a un objeto.

Como puedes ver en la imagen, tenemos 3 columnas y 2 filas que se han convertido en 2 columnas y 3 filas utilizando la instrucción “reshape”.

# Cambio de forma de una matriz
a = np.array([(8,9,10),(11,12,13)])
print(a)
a=a.reshape(3,2)
print(a)

Introducción-a-Numpy-Python-2-4-1

Otra funciones que podemos utilizar con NumPy es seleccionar un solo elemento de la matriz, para ello solamente tenemos que especificar el número de columna y fila en donde está ubicado y nos devolverá el valor almacenado en dicha ubicación.

# Extraer un solo valor de la matriz - el valor ubicado en la fila 0 columna 2
a=np.array([(1,2,3,4),(3,4,5,6)])
print(a[0,2])

Introducción-a-Numpy-Python-2-5-1

Utilizando este mismo método podemos obtener todos los valores ubicados en la columna 3 de todas las filas. Para ello simplemente le decimos que desde la fila 0 en adelante, los dos puntos representa todas las filas, va a tomar el valor de la columna 2. Recuerda que la numeración de filas y columnas siempre comienza en 0.

# Extraer los valores de todas las filas ubicados en la columna 3 
a=np.array([(1,2,3,4),(3,4,5,6)])
print(a[0:,2])

Introducción-a-Numpy-Python-2-6-1

Operaciones matemáticas entre matrices

Con la librería de NumPy puedes realizar de manera muy fácil operaciones aritméticas, veamos algunas de ellas.

Podemos encontrar el valor mínimo, máximo y la suma de la matriz con NumPy, para ello utilizamos “min”, “max” y “sum”, respectivamente.

# Encontrar el mínimo, máximo y la suma
a= np.array([2,4,8])
print(a.min())
print(a.max())
print(a.sum())

Introducción-a-Numpy-Python-2-7

También puedes obtener la raíz cuadrada y la desviación estándar de la matriz.

# Calcular la raíz cuadrada y la desviación estándar
a=np.array([(1,2,3),(3,4,5,)])
print(np.sqrt(a))
print(np.std(a))

Introducción-a-Numpy-Python-2-8-1

Puedes realizar más operaciones con las matrices de NumPy, como son la suma, resta, multiplicación y división de las dos matrices.

# Calcular la suma, resta, multiplicación y división de dos matrices
x= np.array([(1,2,3),(3,4,5)])
y= np.array([(1,2,3),(3,4,5)])
print(x+y)
print(x-y)
print(x*y)
print(x/y)

Introducción-a-Numpy-Python-2-9-1

Acá hemos cubierto gran parte de las funciones que puedes utilizar al momento de manipular los datos con NumPy, aún faltan muchas más instrucciones pero a medida que vayas programando seguramente las irás aprendiendo, recuerda que la página web propia de esta librería ofrece muy buena información sobre todas las funciones que ofrece por lo que no está demás visitarla.

Deja un comentario

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