Ayudantía Python

Report
Ayudantía Python
Arreglos
Introducción: Arreglos
• Las estructuras de datos (listas, tuplas, diccionarios, conjuntos)
manipulan datos de manera muy flexible (combinar, anidar,
organizando).
• En muchas aplicaciones de Ingeniería, es mas importante la
capacidad de hacer operaciones sobre grandes conjuntos de
datos numéricos de manera eficiente. Ej: predicción del clima,
análisis de indicadores financieros..
• Arreglo: estructura de datos que sirve para almacenar grandes
secuencias de números
Introducción: Arreglos
• Similitudes con las listas:
• Tienen un orden y se pueden acceder mediante su posición
• Los elementos se pueden recorrer usando un for
• Restricciones:
• Todos los elementos del arreglo deben tener el mismo tipo
• El tamaño del arreglo es fijo (en general, no crece dinámicamente
como las listas)
• Utilizados principalmente para almacenar datos numéricos
Poseen muchas ventajas sobre las listas.
Los arreglos son equivalentes de los vectores y las matrices de las
matemáticas. Existe mucha teoría detrás de ellos y puede ser usada
para el diseño de algoritmos para resolver varios problemas.
Previo!
• Primero!! El modulo que provee las estructuras de datos y funciones
para trabajar con arreglos se llama NumPy
• Comprobar si poseen el modulo numpy
• Ejecutar en la consola (GUI, Pyscripter.. Lo q sea).
• if:
• http://sourceforge.net/projects/numpy/files/NumPy/1.6.0/
• Busquen su versión, descarguen, instalen y listo!!
Crear Arreglos
• Como se usara frecuentemente las funciones del modulo numpy,
conviene importarlas todas:
• array : tipo de datos de los arreglos.
• Para crear un arreglo, se usa la función array pasando como
parámetro una lista de valores que se desean agregar
Crear Arreglos
• Todos los elementos del arreglo tienen el mismo tipo. Para
crear arreglos de números reales, se debe hacer que uno de
ellos lo sea
• Otra opción: arreglo.astype(tipo) : convierte los elementos del
arreglo, al tipo que se pasa por parámetro
Crear Arreglos
• Existen distintas funciones especiales para crear arreglos:
• zeros(n): Crea un arreglo de n ceros:
• ones(n): crea un arreglo de n unos:
• arrange(a,b,c): como el range, pero a, b y c pueden ser reales,
el resultado es un arreglo (parte en a, hasta b-1, de c en c)
• linspace(a,b,n): crea un arreglo de n valores equispaciados
entre a y b
Operaciones con arreglos
• Los arreglos tienen una gran cantidad de operaciones.
• Las operaciones aritméticas entre arreglos se aplican
elemento a elemento
• Sumar arreglos (elemento a elemento):
• Multiplicar arreglos (elemento a elemento):
• Restar arreglos (elemento a elemento):
Operaciones con arreglos
• Operaciones entre un valor simple y un arreglo funcionan
aplicando la operación a todos los elementos del arreglo,
usando el valor simple como operando todas las veces:
• Multiplicar por 0.1 todos los elementos:
• Restar 9.0 a todos los elementos
• Si fuera con listas, se debería hacer un ciclo para hacer la
operación elemento a elemento
Operaciones con arreglos
• Operaciones relacionales tambien se aplican elemento a elemento.
Retornan un arreglo de valores booleanos.
• Para reducir el arreglo de booleanos a un único valor:
• any: retorna True si al menos uno
de los elementos es verdadero
• all: retorna True solo si todos son
verdaderos
Funciones sobre arreglos
• NumPy posee varias funciones matemáticas que operan
elemento a elemento
seno de 9 valores
equispaciados entre
0 y pi/2, con una sola
llamada a la función
sin(arreglo)
• Valores van desde 0 al 1, como se comporta seno en el
intervalo [0, pi/2]
• Ventaja: Los arreglos aparecen perfectamente alineados!
Arreglos aleatorios
• El modulo NumPy tiene a su vez otros módulos que poseen
funciones adicionales a los arreglos.
• El modulo numpy.random posee funciones para crear
números aleatorios.
• La función random entrega un arreglo de números al azar
entre 0 y 1.
Obtener elementos del arreglo
• Cada elemento del arreglo tiene un índice (como las listas). El
primer elemento tiene índice 0. Ultimo también es -1
• Una sección del arreglo puede ser obtenida con el operador
de rebanado arreglo[i:j]
Obtener elementos del arreglo
• Si el primer índice es omitido, el rebanado comienza desde el
principio del arreglo:
• Si el segundo índice es omitido, el rebanado termina al final
del arreglo
Obtener elementos del arreglo
• Con un tercer índice se indica cuantos elementos se incluirán
en el resultado:
Obtener elementos del arreglo
• Tip: Considerar que los índices no se refieren a los elementos,
sino a los espacios entre los elementos
Arreglos Bidimensionales
• Los arreglos bidimensionales son tablas de valores en donde
cada elemento de un arreglo bidimensional esta en una fila y
en una columna.
• En matematicas los arreglos bidimensionales son conocidos
como matrices, y son bastante utilizados en problemas de
ingenieria.
• Cada elemento de un arreglo bidimensional se identifica
mediante 2 indices: el de su fila y el de su columna
Crear arreglos bidimensionales
• Importar desde NumPy
• Los arreglos bidimensionales se crean utilizando la función
array, pasando como argumento una lista con las filas de la
matriz:
• Las filas deben tener el mismo largo o:
Crear arreglos bidimensionales
• arreglo.shape: retorna una tupla con
los tamaños de cada dimension (fila,
columna)
• a.size: indica cuantos elementos
tiene el arreglo (producto de los
elementos de arreglo.shape)
• len(arreglo): retorna la cantidad de
filas (no el tamaño del arreglo)
• zeros(filas, columnas) y
• ones(filas, columnas): crean arreglos
bidimensionales con 1 o 0 según
correspondan, con la cantidad de
filas y columnas pasadas como
parámetro:
Crear arreglos bidimensionales
• Y asi.. De muchas formas mas:
Operaciones con arreglos
Bidimensionales
• Las aplicaciones sobre matrices también son termino a
termino
• En una operación, ambas matrices deben tener la misma
forma, o si no..
Operaciones con arreglos
bidimensionales
• arreglo.reshape(filas, columnas): entrega un arreglo que tiene
los mismos elementos pero de otra forma (filas x columnas =
cantidad de elementos del arreglo)
Obtener elementos de un
arreglo bidimensional
• Para obtener elementos desde el arreglo, se debe indicar el
indice de la fila «i» con su columna «j», mediante a[i,j]
Obtener elementos de un
arreglo bidimensional
• Se pueden obtener secciones rectangulares del arreglo con el
operador de rebanado con los indices:
Obtener elementos de un
arreglo bidimensional
• Para obtener una fila completa, se debe indicar el índice de la
fla y poner «:» en las columnas:
Obtener elementos de un
arreglo bidimensional
• El numero de dimensiones es igual a la cantidad de rebanados
que ha en los índices
FIN

similar documents