Want to create interactive content? It’s easy in Genially!
Módulo 5 - Tema 2 - NumPy
EAD Recursos
Created on August 29, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Módulo 5
Tema 2
Imagen tomada de: NumPy
Introducción
A continuación estudiaremos la biblioteca NumPy. Su nombre deriva de los términos “Numerical Python”, y es una biblioteca fundamental en el lenguaje de programación Python, ya que proporciona soporte para la manipulación eficiente de arreglos multidimensionales (tensores y matrices) así como operaciones matemáticas en esos arreglos. Fue desarrollada para facilitar el procesamiento numérico y científico en Python, y es ampliamente utilizada en diversos campos, como la ciencia de datos, la ingeniería, la investigación científica y el aprendizaje automático.
¿Qué puedes hacer con NumPy?
NumPy es una herramienta esencial en la ciencia de datos debido a su capacidad para manejar eficientemente datos numéricos, realizar cálculos matemáticos complejos y servir como base para otras bibliotecas en el análisis de datos y el aprendizaje automático (que estudiaremos en el siguiente módulo). Su flexibilidad y eficiencia la convierten en una herramienta poderosa para realizar operaciones matemáticas y análisis de datos en una amplia gama de aplicaciones científicas y de ingeniería.
¿Qué puedes hacer con NumPy?
Algunos de los usos más comunes de NumPy son:
- Manipulación eficiente de datos: NumPy ofrece una estructura de datos llamada "arreglo" que permite almacenar y manipular grandes conjuntos de datos numéricos de manera eficiente, lo cual es fundamental para realizar operaciones rápidas en matrices y vectores.
- Cálculos matemáticos y estadísticos: NumPy proporciona una amplia variedad de funciones matemáticas y estadísticas, lo que facilita realizar operaciones numéricas complejas en datos. Esto incluye funciones para álgebra lineal, estadísticas descriptivas, funciones trigonométricas, operaciones de ángulo, logaritmos y más.
¿Qué puedes hacer con NumPy?
3. Operaciones vectorizadas: NumPy permite realizar operaciones vectorizadas en arreglos, lo que significa que se aplican operaciones a todos los elementos de un arreglo sin necesidad de ciclos explícitos. Esto mejora drásticamente la eficiencia y la velocidad de los cálculos.4. Integración con otras bibliotecas: La biblioteca NumPy es la base de muchas otras bibliotecas en el ecosistema de Python para la ciencia de datos, como pandas (análisis de datos), scikit-learn (aprendizaje automático), matplotlib (visualización), y más. Estas bibliotecas suelen aceptar y devolver objetos NumPy, lo que permite una integración fluida entre ellas.
¿Qué puedes hacer con NumPy?
5. Procesamiento de imágenes y señales: NumPy es útil en el procesamiento de imágenes y señales debido a su capacidad para trabajar con matrices multidimensionales. Esto es esencial en aplicaciones como el procesamiento de imágenes médicas, análisis de imágenes satelitales, procesamiento de audio, entre otros.6. Simulaciones y modelado numérico: NumPy es utilizado para simular sistemas y realizar modelado numérico en diversas disciplinas científicas, como física, biología, química e ingeniería. Permite implementar algoritmos y ecuaciones de manera eficiente. 7. Optimización y cómputo científico: Al ser altamente optimizada, NumPy es ideal para cálculos científicos intensivos en términos de cómputo. Puede ser utilizado en la resolución de ecuaciones diferenciales, optimización numérica y otros problemas complejos.
¿Qué es un arreglo?
Los arreglos pueden tener múltiples dimensiones, como los vectores o las matrices.
Un arreglo es una estructura de datos que permite almacenar un conjunto de elementos del mismo tipo en una secuencia ordenada. Cada elemento en un arreglo se almacena en una posición específica llamada índice. Los arreglos son utilizados para representar y manipular colecciones de datos de manera eficiente.
Arreglo Unidimensional
2/0
2/0
2/0
2/0
2/3
Arreglo Bidimensional
NumPy : Arreglos vs Listas
En el lenguaje de programación Python, las listas sirven también como arreglos, y pueden almacenar datos de diferentes tipos. Sin embargo, son lentas para procesar esos datos. La ventaja del uso de arreglos de NumPy es que estos, aunque aceptan solo datos de un mismo tipo, usan un proceso de optimización de almacenamiento en memoria, por lo que pueden ser hasta cincuenta veces más rápidos que las listas convencionales de Python, además de presentar una multitude de funciones de soporte que hace muy fácil trabajar con dichos arreglos.
Tutoriales y Documentación
Podrás encontrar tutoriales básicos en el sitio oficial de Numpy, así como la referencia detallada de cada instrucción de la librería. Te recomendamos consultar en la documentación oficial la función que realiza cada instrucción en los siguientes ejemplos, y visitar los tutoriales si quieres conocer más sobre el tema. Tutoriales: Documentación:
https://numpy.org/doc/stable/user/absolute_beginners.html
https://numpy.org/doc/stable/reference/index.html
- Introduction to NumPy (w3schools.com)
https://www.w3schools.com/python/numpy/numpy_intro.asp
- Python Numpy Tutorial For Beginners With Examples (devopscube.com)
https://devopscube.com/python-numpy-tutorial/
- 7 Numpy Practical Examples: Sample Code For Beginners (devopscube.com)
https://devopscube.com/numpy-practical-examples/#How_to_reverse_a_NumPy_array
Instrucciones
Cada uno de los siguientes ejemplos consiste en dos actividades:
- Captura el programa. Se proporciona un código en Python acompañado de una breve explicación del funcionamiento de sus instrucciones. Deberás capturar ese código en el intérprete de Python.
- Ejecuta el código. Observa el resultado que te aparece en la pantalla, y compáralo con la respuesta mostrada en la diapositiva. Verifica si ambos coinciden. En caso de no ser así, debes analizar cada línea y experimentar haciendo cambios en el programa para determinar la cause de las diferencias.
Ejemplo: Mi primer arreglo.
Es importante recordar que el primer elemento de un arreglo siempre tiene designado el índice cero. Por ejemplo, para visualizar el primer elemento del arreglo que acabamos de construir, basta con escribir:
Nota: Se puede crear un alias usando la palabra clave as. Por ejemplo, si escribes “import numpy as np”, ahora la librería NumPy puede ser referenciada como “np”
Ejemplo: 2D
Los arreglos pueden tener múltiples dimensiones. Veremos a continuación un ejemplo un arreglo de 2 dimensiones, esto es, una matriz.
Ejemplo: 3D
Si especificamos que cada elemento de un arreglo es una matriz, entonces tendremos una estructura tridimensional.
Cada elemento del arreglo es una matriz
Ejemplo: Acceso mediante el uso de índices
Es posible accesar elementos específicos de un arreglo indicando sus índices correspondientes, usando un índice por cada dimensión del arreglo. Por ejemplo, para una matriz bidimensional, se requieren dos índices (renglón y columna) para accesar un elemento en particular. ¡Recuerda que los índices siempre comienzan en cero!
Cortando arreglos
Es posible tomar un rango específico de elementos de un arreglo, indicando los índices inicial y final de dicho rango. Se puede especificar también si deben saltarse algunos elementos en ese rango. La manera de hacerlo es la siguiente:
- Se indica el “corte” del arreglo usando la sintaxis [inicial : final : salto]
- Si no se especifica el inicio, este será cero.
- El final indica el límite superior del rango, esto es, devuelve todos los elementos con índices menores que el final.
- Si no se especifica el final, este será la longitude del arreglo.
- Si no se especifica el salto, este será de uno, esto es, se tomarán todos los elementos en el rango.
Ejemplo: Cortando arreglos
Arreglo unidimensional con parámetros explícitos
Arreglo unidimensional con parámetros implícitos
Ejemplo: Cambiando formas
La “forma” de un arreglo nos indica su estructura, por ejemplo, para una matriz, la forma nos dará información tal como su número de dimensiones, cuantos elementos tiene en sus renglones y columnas. Numpy permite conocer la forma de un arreglo mediante el uso de la instrucción shape()
Ejemplo: Cambiando formas
También es posible cambiar la forma de un arreglo unidimensional usando la instrucción reshape(). Por ejemplo, dado un arreglo con 15 elementos, podemos especificar que se convierta en una matriz bidimensional con 3 renglones y 5 columnas.
Ejemplo: Iteraciones en arreglos
Es posible acceder a los elementos de un arreglo mediante el uso de estructuras de control iterativas, tales como el ciclo for, haciendo referencia a los índices de cada elemento. Por ejemplo, el siguiente código recorre todos los elementos de una matriz, y los despliega en pantalla en una sola columna.
Ejemplo: Ordenando arreglos
Se pueden ordenar los elementos de un arreglo mediante el uso de la función sort(). Es posible especificar si el ordenamiento será solamente en una dimensión específica mediante el parámetro axis. Por ejemplo:
Ejemplo: Generando matrices
Se pueden generar matrices rellenas con un valor específico muy fácilmente. Existen incluso funciones como ones y zeros que las llenan con 1s y 0s respectivamente.
Ejemplo: Operaciones matriciales
Resulta sencillo efectuar operaciones matemáticas en los arreglos, pues NumPy ofrece una gran variedad de funciones. Por ejemplo, para multiplicar dos matrices, basta invocar la función matmul()
Ejemplo: Valores aleatorios
NumPy ofrece varias funciones que facilitan el manejo de valores aleatorios.
Ejemplo: Valores aleatorios
NumPy tiene una colección importante de funciones para realizar cálculos estadísticos. En este ejemplo, retomando la matriz de valores aleatorios generada en la dispositiva anterior, podemos aplicar fácilmente la función mean() para calcular el promedio de los valores generados, simplemente recorriendo cada renglón de la matriz y aplicando la función de manera iterativa.
Ejercicio: ¿Qué hace este código?
Toma como un reto a tus habilidades de programación el siguiente caso. Considerando los ejemplos que has estudiado a lo largo de este módulo, determina cuál es el funcionamiento del siguiente código. La respuesta está en la diapositiva siguiente. No la consultes hasta tener una idea clara de lo que puedes esperar.
Respuesta: ¿Qué hace este código?
La respuesta es : El código genera un tablero de 10 x 10 relleno en forma alterna por los números 6 y 9. Primero, la matriz se rellena con el número 6, para entonces cambiar todos los valores alternados de los renglones y las columnas de la matriz por el número 9, y finalmente, mediante el uso de un ciclo anidado, recorre elemento por elemento del arreglo y desplegando el resultado en pantalla.
¿Acertaste?
Recomendación Bibliográfica
Encontrarás una magnífica fuente de ejemplos del uso de Numpy en el texto “Python Data Science Handbook”. Podrás consultar el código abierto de este libro en el siguiente enlace: Python Data Science Handbook | Python Data Science Handbook (jakevdp.github.io)
https://jakevdp.github.io/PythonDataScienceHandbook/