Ayudantía Python

Download Report

Transcript Ayudantía Python

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 matemáticas. Existe mucha teoría detrás de ellos y puede ser usada para el diseño de algoritmos para resolver varios problemas.

de las

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 e ntre 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 números aleatorios.

posee funciones para crear La función entre 0 y 1.

random entrega un arreglo de números al azar

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): parámetro: crean arreglos bidimensionales con 1 o 0 según correspondan, con la cantidad de filas y columnas pasadas como

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