350 likes | 825 Views
Ayudantía Python. Arreglos. Introducción: Arreglos . Las estructuras de datos (listas, tuplas, diccionarios, conjuntos) manipulan datos de manera muy flexible (combinar, anidar, organizando).
E N D
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 • Valores van desde 0 al 1, como se comporta seno en el intervalo [0, pi/2] • Ventaja: Los arreglos aparecen perfectamente alineados! seno de 9 valores equispaciados entre 0 y pi/2, con una sola llamada a la función sin(arreglo)
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