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

Numpy Teoria 1

NumPy es, al igual que Pandas, Matplotlib o Scikit-Learn, uno de los paquetes que no puedes perderte cuando estás aprendiendo Machine Learning, principalmente porque esta librería proporciona una estructura de datos de matriz que tiene algunos beneficios sobre las listas regulares de Python. Algunos de estos beneficios son: ser más compacto, acceder más rápido a leer y escribir artículos, ser más conveniente y más eficiente.

NumPy es un paquete de Python que significa “Numerical Python”, es la librería principal para la informática científica, proporciona potentes estructuras de datos, implementando matrices y matrices multidimensionales. Estas estructuras de datos garantizan cálculos eficientes con matrices.

Numpy Teoria 2

Hablemos ahora sobre NumPy array o el arreglo de matrices de NumPy. NumPy array es un potente objeto de matriz N-dimensional que tiene forma de filas y columnas, en la que tenemos varios elementos que están almacenados en sus respectivas ubicaciones de memoria. Pero, a que se refiere exactamente esto, veamos la siguiente imagen, esta es una matriz bidimensional porque tiene filas y columnas, como puedes ver tiene cuatro filas y tres columnas, por lo que se convierte en una matriz bidimensional. En el caso de que solo tuviera una hilera entonces habría sido una matriz unidimensional.

Numpy Teoria 3

Según lo explicado anteriormente en la primera figura tenemos una matriz unidimensional o 1D. En la segunda figura, tenemos una matriz bidimensional o 2D, en donde las filas se indican como el eje 0, mientras que las columnas son el eje 1.

Toma en cuenta que el número de ejes aumenta de acuerdo con el número de dimensiones, en matrices 3D, se tendrá un eje 2 adicional, ten en cuenta que estos ejes sol son válidos para matrices que tienen al menos dos dimensiones, ya que no tiene sentido esto para matrices unidimensional.

Sabiendo todo esto, creemos ahora dos matrices una unidimensional y otra bidimensional, estoy utilizando por supuesto NumPy.

import numpy as np

a=np.array([1,2,3])
print(a)

b=np.array([(1,2,3),(4,5,6)])
print(b)

Introducción-a-Numpy-Python-4

Con la primera instrucción le estamos diciendo a nuestro programa de Python que de ahora en adelante np será la referencia para todo lo referente a NumPy.

De esta manera, muy simple, podemos declarar las matrices dentro de NumPy. Pero seguramente te preguntarás porque usar NumPy en vez de utilizar las listas propias que ofrece Python para manejar estos datos, la primera razón es que NumPy ocupa menos memoria en comparación a las lista de Python, a su vez es bastante rápido en términos de ejecución. Pero veamos esto en el siguiente ejemplo:

import sys
S= range(1000)
print(sys.getsizeof(5)*len(S))
 
D= np.arange(1000)
print(D.size*D.itemsize)

Introducción-a-Numpy-Python-5

Este resultado muestra que la memoria asignada para la matriz creada por Python es de 28000, mientras que la memoria asignada por la matriz NumPy es de solo 8000, con esto podemos concluir que hay una gran diferencia entre los dos y esto hace que las matrices creadas con NumPy sea la opción preferida.

Evaluemos ahora la rapidez.

import time
 
SIZE = 1000000
 
L1= range(SIZE)
L2= range(SIZE)
A1= np.arange(SIZE)
A2=np.arange(SIZE)
 
start= time.time()
result=[(x,y) for x,y in zip(L1,L2)]
print((time.time()-start)*1000)
 
start=time.time()
result= A1+A2
print((time.time()-start)*1000)

Introducción-a-Numpy-Python-6

En este código se han definido dos listas en Python y dos matrices esta vez utilizando NumPy, posteriormente hemos comparado el tiempo tomado para encontrar la suma de los elementos. Si observas los resultados, hay una diferencia significativa entre los dos, en el primero obtuvimos 207 ms mientras que la operación realizada con NumPy solamente tomo 51 ms en ser ejecutada. Por lo tanto, las matriz creadas con NumPy son más rápida que la listas creadas directamente por Python.

Otro detalle que tienes que ver acá es que para hacer esta operación para el primer caso tuvimos que utilizar “for”, mientras que para el segundo caso simplemente sumamos las dos matrices sin mucho esfuerzo.

Como puedes observar con estos ejemplos prácticos, trabajar con NumPy es mucho más fácil y conveniente en comparación con las listas propias de Python, es por esta razón que es utilizado bastante en el desarrollo de los algoritmos de Machine Learning.

En una próxima entrada veremos de manera práctica algunas de las instrucciones básicas con la que cuenta NumPy.

1 thought on “Introducción a la librería NumPy de Python – Parte 1”

Deja un comentario

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