Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lectura Ae1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

Módulo

Obtención y preparación de datos

Aprendizaje Esperado 1
Aprendizaje Esperado 1
La librería Numpy

Aprendizaje Esperado 1
Manipular datos utilizando estructuras de vectores y matrices acorde a
biblioteca Numpy para resolver un problema.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

1. La librería Numpy

Contexto
NumPy es una biblioteca fundamental en el ámbito del análisis de datos
con Python. Se ha convertido en la base sobre la cual se construyen
muchas de las herramientas y bibliotecas utilizadas en ciencia de datos y
análisis numérico. NumPy proporciona estructuras de datos altamente
eficientes, especialmente arreglos multidimensionales (llamados
ndarrays), que son esenciales para realizar operaciones matemáticas y
estadísticas en conjuntos de datos de gran tamaño. Además de su
eficiencia, NumPy ofrece una amplia gama de funciones y métodos que
permiten realizar operaciones de álgebra lineal, estadísticas,
transformaciones de datos y más, lo que lo convierte en una herramienta
indispensable para tareas como procesamiento de imágenes, análisis de
series temporales, aprendizaje automático y mucho más.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Reseña de la librería NumPy

NumPy es una librería de Python especializada en el cálculo numérico y


el análisis de datos, especialmente para un gran volumen de datos.

Incorpora una nueva clase de objetos llamados arrays que permite


representar colecciones de datos de un mismo tipo en varias dimensiones,
y funciones muy eficientes para su manipulación.

La ventaja de NumPy frente a las listas predefinidas en Python es que el


procesamiento de los arrays se realiza mucho más rápido (hasta 50 veces
más) que las listas, lo cual la hace ideal para el procesamiento de vectores
y matrices de grandes dimensiones.

Un ejemplo:

Para este ejemplo, necesitaremos ejecutar Jupyter notebooks, ya que


utilizaremos el comando %timeit, que mide la ejecución de una función.

Este ejemplo ejecutará dos sumas de colecciones, cada una contendrá


1000001 elementos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

La primera colección será una lista normal de Python, la segunda


colección será un arreglo de NumPy. Mediremos el tiempo y veremos cuál
es más rápida.

La salida será:

Como observamos, la primera medición (de la lista regular de python),


nos marca 21.6ms (21600us), con 273us por suma.

La segunda medición nos tomó 221us, con 4.78us por suma, lo que es
casi 100 veces más rápido!

Ahora que vemos el verdadero poder de NumPy, podemos entender las


razones para usarlo.

Utilizando Arreglos de NumPy: Vectores;


Matrices
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Como estudiamos anteriormente, un array es una estructura de datos de


un mismo tipo organizada en forma de tabla o cuadrícula de distintas
dimensiones.

Las dimensiones de un array también se conocen como ejes o axis.

Vectores en NumPy

En NumPy, un vector es simplemente un arreglo unidimensional. Puedes


crear vectores de la siguiente manera:

Una vez que tienes un vector, puedes realizar varias operaciones


matemáticas en él:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Matrices en NumPy

En NumPy, una matriz es un arreglo bidimensional. Puedes crear


matrices de la siguiente manera (entre otras):

Al igual que con los vectores, puedes realizar operaciones matemáticas en


matrices:

Métodos rápidos para la creación de arreglos:


Arange();
Creación de arreglos con array()

Existen muchas formas de creación de arreglos o matrices en numpy, la


más común es la función array().

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Su sintaxis básica es:

Donde:

iterable: Puede ser una secuencia (como una lista, tupla, o incluso otra
matriz NumPy) que se utilizará para crear el nuevo arreglo.

dtype (opcional): Permite especificar el tipo de datos deseado para los


elementos del arreglo. Si no se proporciona, NumPy intentará inferir el
tipo de datos automáticamente.

Otros argumentos (opcionales): Existen otros argumentos que


permiten configurar propiedades como la copia de datos, el orden de
los datos en la memoria, entre otros.

Recuerden siempre importar la librería, y, en este caso, darle un alias.

Ejemplos:

1. Creación de un arreglo a partir de una lista de Python:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

2. Creación de un arreglo con tipo de datos específico:

3. Creación de un arreglo multidimensional (matriz) a partir de una lista


de listas:

Creación de arreglos con arange()

La función np.arange() en NumPy se utiliza para crear un arreglo NumPy


que contiene una secuencia de números espaciados de manera uniforme
dentro de un rango especificado.

Su sintaxis es la siguiente:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Donde:

start (opcional): Es el valor inicial de la secuencia (por defecto,


comienza en 0).

stop: Es el valor final de la secuencia (no se incluye en el resultado).

step (opcional): Es el espaciado entre los números de la secuencia (por


defecto, es 1).

dtype (opcional): Permite especificar el tipo de datos deseado para los


elementos del arreglo (por defecto, utiliza el tipo de datos más
adecuado).

Ejemplos:

1. Creación de un arreglo con valores en un rango:

2. Creación de un arreglo con valores espaciados por un valor específico:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

3. Creación de un arreglo con valores decimales:

Ejercicio guiado
Asegúrate de que NumPy esté instalado en tu entorno Python. Si no lo está, puedes
instalarlo utilizando pip:

pip install numpy

Luego, en tu script o notebook de Python, importa NumPy:

import numpy as np

Utiliza np.arange() para crear un arreglo que comience en 0 y termine en 9.

arreglo = np.arange(10)

print("Arreglo del 0 al 9:", arreglo)

Crea un arreglo que comience en 5 y termine en 15.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

arreglo_inicio_fin = np.arange(5, 16) # Nota que el fin es exclusivo

print("Arreglo del 5 al 15:", arreglo_inicio_fin)

Crea un arreglo que comience en 10 y termine en 50, con un paso de 5.

arreglo_con_paso = np.arange(10, 51, 5)

print("Arreglo del 10 al 50 con paso de 5:", arreglo_con_paso)

Crea un arreglo que comience en -10 y termine en -1.

arreglo_negativo = np.arange(-10, 0)

print("Arreglo del -10 al -1:", arreglo_negativo)

Crea un arreglo con números flotantes utilizando np.arange().

arreglo_flotante = np.arange(0.5, 5.5, 0.5)

print("Arreglo con números flotantes:", arreglo_flotante)

Los arreglos de NumPy tienen un tipo de datos asociado. Verifiquemos el tipo de datos
del arreglo creado.

print("Tipo de datos del arreglo:", arreglo_flotante.dtype)

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Matrices de ceros y unos; Vector con


distribución de puntos; Matriz identidad;
Matriz aleatoria
Matriz Vacía:

La función np.empty() es útil cuando necesitas crear una matriz de un


tamaño específico pero no te importa inicializarla con valores concretos
en ese momento. Sin embargo, debes tener en cuenta que los valores en
una matriz vacía pueden ser impredecibles y no deben usarse
directamente sin una inicialización posterior.

Al definir las dimensiones podemos usar [] o (), por ejemplo, [2,3] sería
equivalente a (2,3)

Si enviamos el valor de la matriz creada a pantalla, mediante un print, nos


dará:

Si quisiéramos crear un vector (array de una dimensión):

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Crear un array con ceros

Para crear una matriz de ceros, puedes utilizar la función np.zeros().


Especifica las dimensiones de la matriz (filas y columnas) como
argumento.

Crear un array con unos

De manera similar, puedes crear una matriz de unos utilizando la función


np.ones().

Vector con Distribución de Puntos

Para crear un vector con valores distribuidos uniformemente en un rango,


puedes utilizar la función np.linspace(). Especifica el valor de inicio, el
valor final y la cantidad de puntos que deseas en el vector.

Si lo enviamos a pantalla, su salida sería:

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Matriz Identidad

Para crear una matriz identidad (una matriz cuadrada con unos en la
diagonal principal y ceros en todas partes), utiliza la función np.eye().
Debes especificar el tamaño de la matriz como argumento.

Su valor:

Matriz Aleatoria

NumPy proporciona funciones para crear matrices con valores aleatorios.


Una de las más comunes es np.random.rand(), que crea una matriz con
valores aleatorios entre 0 y 1.

Matriz con todos sus valores iguales

La función np.full(dimensiones, valor) en NumPy se utiliza para crear un


arreglo NumPy con las dimensiones especificadas (como una tupla) y
llenarlo con un valor constante que determines.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Redimensionado de un arreglo. Selección de


elementos de un arreglo. Selección
condicional de elementos de un arreglo
Puedes redimensionar un arreglo NumPy existente utilizando el método
.reshape() o la función np.reshape(). Esto te permite cambiar la forma o
las dimensiones del arreglo sin modificar sus datos subyacentes.

Selección de Elementos de un Arreglo

Puedes seleccionar elementos específicos de un arreglo NumPy utilizando


índices. Los índices NumPy son similares a los de las listas de Python y
utilizan la notación de corchetes [].

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Selección Condicional de Elementos de un Arreglo

Puedes seleccionar elementos de un arreglo basándote en una condición


específica. NumPy te permite utilizar expresiones condicionales para
filtrar los elementos que cumplan ciertos criterios

Operaciones entre arreglos


En NumPy, puedes realizar una amplia variedad de operaciones entre
arreglos, como sumas, restas, multiplicaciones, divisiones y muchas otras.
Estas operaciones se aplican elemento por elemento y se denominan
"operaciones elemento a elemento".

Suma y Resta: Puedes sumar y restar dos arreglos NumPy de la misma


forma (misma dimensión) utilizando los operadores + y -.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Multiplicación y División: Puedes multiplicar y dividir dos arreglos


NumPy elemento por elemento utilizando los operadores * y /.

Producto punto: Puedes calcular el producto escalar entre dos arreglos


NumPy utilizando la función np.dot().

Matriz Transpuesta: La función np.T en NumPy se utiliza para transponer


un arreglo NumPy. La transposición de un arreglo implica intercambiar
filas y columnas. Esto es útil cuando trabajas con matrices y deseas
cambiar la orientación de los datos.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Ejercicio guiado: Operaciones con arreglos


Realizaremos un ejercicio que ponga a prueba nuestras habilidades para sumar y restar
arreglos con Numpy. Primero, importamos NumPy en tu script de Python:

import numpy as np

Vamos a crear dos arreglos de NumPy de igual tamaño para poder realizar sumas y
restas entre ellos.

# Creamos dos arreglos de tamaño 5

arreglo1 = np.array([10, 20, 30, 40, 50])

arreglo2 = np.array([1, 2, 3, 4, 5])

print("Arreglo 1:", arreglo1)

print("Arreglo 2:", arreglo2)

Utilizaremos el operador + para sumar los dos arreglos elemento por elemento.

suma = arreglo1 + arreglo2

print("Suma de los arreglos:", suma)

Utilizaremos el operador - para restar los elementos del segundo arreglo de los del
primero.

resta = arreglo1 - arreglo2

print("Resta de los arreglos:", resta)

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

NumPy permite realizar operaciones entre arreglos de diferentes tamaños a través de


un proceso llamado "broadcasting". Por ejemplo, podemos sumar o restar un número
escalar a cada elemento de un arreglo.

# Suma con broadcasting

suma_broadcast = arreglo1 + 10

print("Suma con broadcasting:", suma_broadcast)

# Resta con broadcasting

resta_broadcast = arreglo1 - 10

print("Resta con broadcasting:", resta_broadcast)

Es importante verificar que los arreglos tengan las mismas dimensiones para la suma y
resta elemento por elemento. Podemos utilizar la propiedad .shape para esto.

print("Forma del Arreglo 1:", arreglo1.shape)

print("Forma del Arreglo 2:", arreglo2.shape)

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Operaciones con escalares


NumPy permite realizar operaciones con escalares de manera muy sencilla
en arreglos. Puedes realizar operaciones aritméticas como suma, resta,
multiplicación y división entre un escalar y un arreglo NumPy.

Ejemplos:

Aplicando funciones a un arreglo


En NumPy, puedes aplicar funciones a un arreglo de forma eficiente
utilizando las funciones universales (ufuncs). Estas funciones están
diseñadas para operar elemento por elemento en arreglos NumPy, lo que
hace que las operaciones sean rápidas y eficientes.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Operaciones Matemáticas Básicas

Puedes aplicar funciones matemáticas básicas a un arreglo NumPy, como


np.sin(), np.cos(), np.exp(), np.log(), np.sqrt(), entre otras. Estas funciones
se aplican a cada elemento del arreglo.

Funciones de Agregación

Puedes usar funciones de agregación para calcular estadísticas sobre los


elementos de un arreglo. Algunos ejemplos de funciones de agregación
incluyen np.sum(), np.mean(), np.max(), np.min(), y muchas más.

Funciones Lógicas

Puedes aplicar funciones lógicas a un arreglo para realizar operaciones de


comparación y obtener arreglos de valores booleanos. Algunas funciones
lógicas comunes son np.logical_and(), np.logical_or(), np.logical_not(), y
np.equal(). Estas funciones son útiles para filtrar datos o realizar
comparaciones.

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Referencias
● Aprendeia: La librería NumPy
https://aprendeia.com/libreria-de-python-numpy-machine-learning/

● ClaudioVZ: Operaciones numéricas con arreglos


https://claudiovz.github.io/scipy-lecture-notes-
ES/intro/numpy/operations.html

● FacundoQ: Numpy
http://facundoq.github.io/courses/images/res/03_numpy.html

● Aprende con Alf: la librería NumPy


https://aprendeconalf.es/docencia/python/manual/numpy/

● Imalexissaes: Breve introducción a la librería NumPy


https://imalexissaez.github.io/2018/08/18/breve-introduccion-a-la-
libreria-numpy/

● Numpy: Documentation
https://numpy.org/doc/stable/index.html

● FreeCodeCamp: La guía definitiva del paquete NumPy para


computación científica en Python
https://www.freecodecamp.org/espanol/news/la-guia-definitiva-del-
paquete-numpy-para-computacion-cientifica-en-python/

Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 1
La librería Numpy

Módulo
Obtención y Preparación de Datos

También podría gustarte