Herramientas de Programación con Python – Intermedio Avanzado
Relator : Roberto Rojas R
4. – Uso 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 (arreglos) que permite
representar colecciones de datos de un mismo tipo en varias dimensiones y
funciones muy eficientes para su manipulación.
Por que usar NumPY
El módulo NumPy proporciona un objeto ndarray que podemos usar para realizar
operaciones en un arreglo de cualquier dimensión.
El ndarray significa arreglo de N dimensiones donde N es cualquier número. Eso significa
que los arreglos NumPy puede ser de cualquier dimensión.
Podemos realizar operaciones de alto rendimiento en los arreglos NumPy, tales como:
Ordenar los datos de un arreglo
Operaciones matemáticas y lógicas.
Funciones de entrada / salida
Operaciones estadísticas y de álgebra lineal.
El principal beneficio de NumPy es que permite una generación y manejo de datos
extremadamente rápido.
1.- Comparacion_listas_NumPY.py
Qué son los Arreglos de NumPy?
Los arreglos NumPy son la forma principal de almacenar datos
utilizando la biblioteca NumPy.
Son similares a las listas normales en Python, pero tienen la ventaja de
ser más rápidas y tener más métodos integrados.
Los arreglos de NumPy son creados llamando al método array() de la
librería de NumPy.
Qué son los Arreglos de NumPy?
A continuación, se muestra un ejemplo de un arreglo de NumPy básico.
#importar librería numpy
import numpy as np
#se crea un “objeto” o “variable” del tipo array llamado np
lista = [1, 2, 3]
np.array(lista)
La última línea de ese bloque de código dará como resultado una salida que se ve así.
array([1,2,3])
El contenedor array() indica que esta ya no es una lista normal de Python.
En cambio, es un arreglo de NumPy.
Tipos de arreglos en NumPY
Hay dos tipos diferentes de arreglos de NumPy:
Vectores (1 dimensión)
Matrices (2 o más dimensiones)
Los vectores son arreglos de NumPy uni-dimensionales y se ve así:
mi_vector = np.array(['este', 'es', 'un', 'vector'])
Las matrices son arreglo bi-dimensionales y son creadas pasando una lista de lista
dentro del método np.array().
Un ejemplo es el siguiente.
mi_matriz = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
np.array(mi_matriz)
Tipos de arreglos en NumPY
Como Instalar NumPY
Para instalar NumPy, necesitas Python y Pip en tu sistema, se debe ejecutar el comando:
c:\pip install numpy
Importación de Librería NumPY
Ahora se debe importar NumPy de la siguiente manera:
Creación de un Array
Para crear un array se utiliza la siguiente función de NumPy
np.array(lista) : Crea un array a partir de la lista o tupla lista y devuelve una
referencia a él.
El número de dimensiones del array dependerá de las listas o tuplas anidadas
en lista.
Para una lista de valores se crea un array de una dimensión, también
conocido como vector.
Creación de un Array
Para una lista de listas de valores se crea un array de dos dimensiones, también conocido
como matriz.
Para una lista de listas de listas de valores se crea un array de tres dimensiones, también
conocido como cubo.
Y así sucesivamente.
No hay límite en el número de dimensiones del array más allá de la memoria disponible en
el sistema.
Ejemplo Creación de un Array y Matrices
#Ejemplo_NumPY_1.py
# importamos la librería numpy, y le damos como nombre np dentro del programa
import numpy as np
# Array de una dimensión
a1 = np.array([1, 2, 3])
print(a1)
print(a1.shape)
# Array de dos dimensiones
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print(a2)
print(a2.shape)
Ejemplo Creación de un Array y Matrices
# Array de tres dimensiones
a3 = np.array([[[1, 2, 3],[4, 5, 6],[7, 8, 9]],
[[11,12,13],[14,15,16],[17,18,19]]])
print(a3)
Print(a3.shape)
Funciones de Manejo de Array 1/4
np.empty(dimensiones) : Crea y devuelve una referencia a un array
vacío con las dimensiones especificadas en el parámetro dimensiones.
np.zeros(dimensiones) : Crea y devuelve una referencia a un array con
las dimensiones especificadas en la parámetro dimensiones cuyos
elementos son todos ceros.(0)
np.ones(dimensiones) : Crea y devuelve una referencia a un array con
las dimensiones especificadas en el parámetro dimensiones cuyos
elementos son todos unos.(1)
2.- Ejemplo_Funciones_Numpy.py
Funciones de Manejo de Array 2/4
np.full(dimensiones, valor) : Crea y devuelve una referencia a un array con
las dimensiones especificadas en el parámetro dimensiones cuyos elementos
son todos igual a valor.
np.identity(n) : Crea y devuelve una referencia a la matriz identidad de
dimensión n.
np.arange(inicio, fin, salto) : Crea y devuelve una referencia a un array de una
dimensión cuyos elementos son la secuencia desde inicio hasta fin tomando
valores cada salto.
2.- Ejemplo_Funciones_Numpy.py
Funciones de Manejo de Array 3/4
np.linspace(inicio, fin, n) : Crea y devuelve una referencia a un array de una
dimensión cuyos elementos son la secuencia de n valores equidistantes desde
inicio hasta fin.
np.random.random(dimensiones) : Crea y devuelve una referencia a un array
con las dimensiones especificadas en el parametro dimensiones cuyos
elementos son aleatorios. (números al azar)
2.- Ejemplo_Funciones_Numpy.py
Funciones de Manejo de Array 4/4
np.max() : Obtiene el valor más alto dentro de un arreglo
np.argmax() : índice del valor más alto del arreglo
np.min() : Obtiene el valor mas bajo dentro de un arreglo
np.argmin() : índice del valor más bajo del arreglo
3.- Ejemplo_Max_Min_Array.py
Atributos de un Array
Existen varios atributos y funciones que describen las características de
un array.
arreglo.ndim : Devuelve el número de dimensiones del array.
arreglo.shape : Devuelve una tupla con las dimensiones del array.
arreglo.size : Devuelve el número de elementos del array.
arreglo.dtype: Devuelve el tipo de datos de los elementos del array.
4.- Ejemplo_Atributos_Array.py
Acceso a los elementos de un array
Para acceder a los elementos contenidos en un array se usan índices al
igual que para acceder a los elementos de una lista, pero indicando los
índices de cada dimensión separados por comas.
Al igual que para listas, los índices de cada dimensión comienzan en 0.
También es posible obtener subarrays con el operador dos puntos :
indicando el índice inicial y el siguiente al final para cada dimensión, de
nuevo separados por comas.
Acceso a los elementos de un array
arreglo = np.array([[1, 2, 3], [4, 5, 6]])
# Acceso al elemento de la fila 1 columna 0
print(arreglo [1, 0])
# Otra forma de acceder al mismo elemento
print(arreglo [1][0])
# # obtener todos los elementos de la primera fila y
# el elemento y entre los elemento 0 y 2 de la segunda
print(arreglo [:, 0:2])
5.- Ejemplo_Acceso_Elementos_Array.py
Asignación de elementos de un array
Se puede referenciar múltiples elementos usando los dos puntos.
Por ejemplo, el índice [2:] selecciona cada elemento desde el índice 2 en
adelante.
El índice [:3] selecciona cada elemento hasta el índice 3 excluido.
El índice [2:4] retorna cada elemento desde el índice 2 al índice 4,
excluyendo este último.
El criterio de valoración más alto siempre se excluye.
6. Ejemplo_Indexacion_y_Asignacion.py
Filtrado de elementos de un Array
Una característica muy útil de los arrays es que es muy fácil obtener otro
array con los elementos que cumplen una condición.
arreglo[condicion] : Devuelve una lista con los elementos del array a que
cumplen la condición condicion.
arreglo = np.array([[1, 2, 3], [4, 5, 6]])
print(arreglo [(arreglo % 2 == 0)])
print(arreglo [(arreglo % 2 == 0) & (arreglo > 2)])
7.- Ejemplo_Filtrado_Array.py
Filtrado de elementos de un Array
Filtro unique: Devuelve un array de una dimensión borrando todos los
elementos duplicados.
# Generamos un array con números aleatorios repetidos
arreglo= np.random.randint(0, 4, 10)
print(arreglo)
# Aplicamos el filtro unique
arreglo=np.unique(arreglo)
print(arreglo)
7.- Ejemplo_Filtrado_Array.py
Filtrado de Array
Filtro union1d: La función numpy.union1d devuelve un array
unidimensional ordenado con los elementos resultantes de unir los
arrays indicados:
a=np.array([4,1,3])
b=np.array([1,2,2,5])
print(np.union1d(a,b))
7.- Ejemplo_Filtrado_Array.py
Filtrado de Array
Filtros booleanos:
# Comprobar si todos los elementos de un array son True
arr_bool = np.array([True,True,True,False])
print(arr_bool.all())
# Comprobar al menos un elemento del array es True
arr_bool = np.array([True,True,True,False])
print(arr_bool.any())
# También aplican a un eje en particular
arr_bool = np.array([[True,True],[False,True],[True,True]])
print(arr_bool)
# Columas verdaderas
print(arr_bool.all(0))
# Filas verdaderas
print(arr_bool.all(1)) 8.- Ejemplo_Filtros_Booleanos_Array.py
Uso del Where para cambiar valores dentro
Del ARRAY
# Generamos un array con números aleatorios
print("============")
arr_1 = np.random.uniform(-5, 5, size=[3,2])
print(arr_1)
print("============")
# Creamos un filtro que establece los negativos a 0
arr_2 = np.where(arr_1<0, 0, arr_1)
print(arr_2)
print("============")
# Añadimos otro filtro que establece los positivos a 1
arr_2 = np.where(arr_2>0, 1, arr_2)
print(arr_2)
9.-Ejemplo_Where_Array.py
Operaciones matemáticas con arrays
Existen dos formas de realizar operaciones matemáticas con arrays:
- a nivel de elemento
- a nivel de array
Las operaciones a nivel de elemento operan los elementos que ocupan
la misma posición en dos arrays.
Se necesitan, por tanto, dos arrays con las mismas dimensiones y el
resultado es una array de la misma dimensión.
Operaciones matemáticas con arrays
Los operadores matemáticos son a nivel de elemento son:
+ : Suma
- : Resta
* : Multiplicación
/ : División
% : resto de la división entera
** : Potencia
10.- Ejemplo_Operaciones_Matematicas.py
Funciones matemáticas con array
Existe una gran cantidad de funciones matemáticas, trigonometicas, estadísticas
que se pueden usar con los array que pueden encontrar el el siguiente link oficial
de Python :
Funciones Matematicas
11.- Ejemplo_Funciones_Matematicas.py
OBJETIVOS
XXXXXXX
AV. NUEVA TAJAMAR 481 OF. 102, LAS
<<<<<<
CONDES | FONO: (56 2) 23397000
www.caphome.cl