6 - Listas de Python vs. Arreglos de Numpy

Lección 6 del curso NumPy para Ciencia de Datos y Machine Learning.

Introducción

En la lección anterior vimos las diferentes funciones de NumPy que facilitan la creación de arreglos, como zeros, ones, full, arange y linspace.

Y como lo mencionamos en la primera lección del curso, cuando vimos qué es NumPy, a pesar de que en Python también podemos usar las listas para almacenar y procesar arreglos, por tratarse de un lenguaje de programación genérico este procesamiento no será eficiente.

Por el contrario, NumPy es una librería diseñada específicamente para el procesamiento avanzado de arreglos, lo que la hace mucho más eficiente que Python al momento de operar sobre este tipo de datos.

En esta lección veremos un comparativo en el tiempo de cómputo requerido para procesar arreglos usando Python y NumPy.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Tiempo de cómputo: Python vs. NumPy

Para realizar este comparativo crearemos listas de Python y arreglos de NumPy idénticos y con diferentes tamaños (10, 100, 1.000, 10.000, 100.000 y 1’000.000 de elementos) y en cada caso calcularemos el tiempo requerido para sumar sus elementos.

Para calcular dichos tiempos de cómputo usaremos el módulo timeit incluido en la [librería estándar de Python].

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Tras realizar este comparativo podemos ver que los tiempos de cómputo son similares cuando los tamaños de los arreglos son relativamente “pequeños” (10, 100 o incluso 1.000 elementos).

Pero la diferencia significativa se pone en evidencia a medida que los arreglos son cada vez más grandes: para arreglos con 10.000 elementos NumPy es aproximadamente 8 veces más rápido que Python, mientras que con arreglos de entre 100.000 y 1’000.000 de elementos este factor de incremento en la velocidad de cómputo es de entre 15 y 20 veces.

Conclusión

Con este sencillo ejemplo hemos podido comprobar que a medida que el tamaño de los arreglos a procesar se incrementa se hace más evidente la ventaja de usar NumPy que genera velocidades de cómputo entre 8 y 20 veces menores que las obtenidas al usar Python.

Y con esto cerramos este segundo módulo del curso, donde hemos visto los elementos básicos relacionados con los arreglos en NumPy.

En el tercer módulo nos enfocaremos en cómo usar NumPy para realizar operaciones avanzadas sobre diferentes tipos de arreglos. Y en particular en la próxima lección veremos lo que se conocen como los operadores de arreglos en NumPy.

Ver todas las lecciones de este curso