Ayudanta Python
Arreglos
Introduccin: Arreglos
Las estructuras de datos (listas, tuplas, diccionarios, conjuntos)
manipulan datos de manera muy flexible (combinar, anidar,
organizando).
En muchas aplicaciones de Ingeniera, es mas importante la
capacidad de hacer operaciones sobre grandes conjuntos de
datos numricos de manera eficiente. Ej: prediccin del clima,
anlisis de indicadores financieros..
Arreglo: estructura de datos que sirve para almacenar grandes
secuencias de nmeros
Introduccin: Arreglos
Similitudes con las listas:
Tienen un orden y se pueden acceder mediante su posicin
Los elementos se pueden recorrer usando un for
Restricciones:
Todos los elementos del arreglo deben tener el mismo tipo
El tamao del arreglo es fijo (en general, no crece dinmicamente
como las listas)
Utilizados principalmente para almacenar datos numricos
Poseen muchas ventajas sobre las listas.
Los arreglos son equivalentes de los vectores y las matrices de las
matemticas. Existe mucha teora detrs de ellos y puede ser usada
para el diseo 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 versin, 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 funcin array pasando como
parmetro una lista de valores que se desean agregar
Crear Arreglos
Todos los elementos del arreglo tienen el mismo tipo. Para
crear arreglos de nmeros reales, se debe hacer que uno de
ellos lo sea
Otra opcin: arreglo.astype(tipo) : convierte los elementos del
arreglo, al tipo que se pasa por parmetro
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 aritmticas 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 operacin 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 debera hacer un ciclo para hacer la
operacin 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 matemticas que operan
elemento a elemento
seno de 9 valores
equispaciados entre
0 y pi/2, con una sola
llamada a la funcin
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 mdulos que poseen
funciones adicionales a los arreglos.
El modulo numpy.random posee funciones para crear
nmeros aleatorios.
La funcin random entrega un arreglo de nmeros 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 tambin es -1
Una seccin 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 incluirn
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 funcin
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
tamaos 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 tamao del arreglo)
zeros(filas, columnas) y
ones(filas, columnas): crean arreglos
bidimensionales con 1 o 0 segn
correspondan, con la cantidad de filas y
columnas pasadas como parmetro:
Crear arreglos bidimensionales
Y asi.. De muchas formas mas:
Operaciones con arreglos
Bidimensionales
Las aplicaciones sobre matrices tambin son termino a
termino
En una operacin, 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