Python ING1310 – Introducci´ on a la Computaci´ on Python Listas y Arreglos Mat´ıas Recabarren - Andr´es Moreno mreca
Views 126 Downloads 0 File size 131KB
Python
ING1310 – Introducci´ on a la Computaci´ on
Python Listas y Arreglos
Mat´ıas Recabarren - Andr´es Moreno [email protected] - [email protected] Universidad de Los Andes
20/octubre/2010
Rev : 103 Clase 23
1 / 25
Python
En esta clase
1 Resumen Clase Anterior 2 Listas 3 numpy
numpy.array numpy.matrix numpy.linalg
Clase 23
2 / 25
Python Resumen Clase Anterior
Resumen Clase Anterior
Clase 23
3 / 25
Python Resumen Clase Anterior
Resumen Clase 22
• Python es un lenguaje interpretado y multiparadigma • Puede tener clases, funciones, variables globales, . . . • No tiene main expl´ıcito • Las variables no necesitan ser declaradas, simplemente se usan • No tienen un tipo fijo, este depende del contenido • La forma de pensar no cambia.
Clase 23
4 / 25
Python Listas
Listas
Clase 23
5 / 25
Python Listas
Creaci´on de listas • En python a lo que normalmente se conoce como arreglos los
llamaremos listas. • Conceptualmente una lista describe mejor como funcionan los arreglos
b´asicos en python. • Para crearlas se utilizan par´ entesis de corchete, y los elementos se
separan por comas. • Funcionan como tipos por referencia. Sint´axis Python: Listas a = [1 , 2 , 3 , 4]
Clase 23
6 / 25
Python Listas
Tipos en listas • Dado que el tipo de las variables es din´ amico, las listas soportan
cualquier tipo en su interior. • Incluso elementos de tipos diferentes
Ejemplo: Listas con m´ ultiples tipos a = [1 , 2.35 , ’ texto ’ , 4 , ’ palabra ’] • Por supuesto una lista puede tener otras listas en su interior Ejemplo: Listas con otras listas a = [1 , 2.35 , ’ texto ’ , [1 , 2 , 3] , ’ palabra ’]
Clase 23
7 / 25
Python Listas
´Indices • Los ´ındices comienzan desde 0 • Se pueden usar ´ındices negativos • Parten desde el final • El ´ındice -i equivale a len(a)-i • El largo de la lista se obtiene con la funci´ on len(a) Ejemplo: ´Indices en listas a = [1 , 2 , 3 , 4 , 5] print a [1] # muestra un 2 print a [ -2] # muestra un 4
Clase 23
8 / 25
Python Listas
Sub-listas • Las listas permiten obtener f´ acilmente un pedazo de ellas. • Este pedazo es una copia de los elementos indicados. • Se da la posici´ on de inicio y la de final (no la incluye) separadas por : • Si no se indica la de inicio se asume que es la 0 • Si no se indica la de final se asume que es len(a) Ejemplo: Sub-listas a = [1 , 2 , 3 , 4 , 5] b = a [2:] # [3 , 4 , 5] c = a [1: -1] # [2 , 3 , 4] d = a [:2] # [1 , 2] e = a [:] # crear una copia de a
Clase 23
9 / 25
Python Listas
Modificaci´on • Las listas son modificables: • se pueden cambiar elementos, • agregar elementos, • eliminar elementos. Ejemplo: Modificar listas a = [1 , 2 , 3 , 4 , 5] a [0:2] = [6 , 7] # a = [6 , 7 , 3 , 4 , 5] a [0:2] = [] # a = [3 , 4 , 5] a [1:1] = [10 , ’ hola ’] # a = [3 , 10 , ’ hola ’, 4 , 5] a [:] = [] # vaciar a
Clase 23
10 / 25
Python Listas
Listas como objetos • Las listas autom´ aticamente son objetos • y tienen m´ etodos. • Algunos de esos m´ etodos: • append(x) → agrega un elemento al final de la lista • a[len(a):] = [x] • extend(L) → agrega la lista recibida al final de la lista • a[len(a):] = L • insert(i,x) → inserta el elemento en la posici´ on indicada • a[i:i] = [x] • remove(x) → elimina la primera aparici´ on del elemento en la lista • index(x) → retorna el ´ındice de la primera aparici´ on del elemento en
la lista • count(x) → retorna la cantidad de apariciones del elemento en la lista • sort() → ordena la lista • reverse() → pone los elementos de la lista al rev´ es Clase 23
11 / 25
Python numpy
numpy
Clase 23
12 / 25
Python numpy
¿Qu´e es numpy?
NUMeric PYthon • numpy es un m´ odulo cuyo prop´ osito es proveer funcionalidades para la computaci´on cient´ıtifica: • array n-dimensional con muchas funcionalidades, • manejo especial para matrices, • funciones para algebra lineal, transformada de Fourier, . . .
• Para utilizarlo simplemente hay que importarlo • from numpy import *
Clase 23
13 / 25
Python numpy numpy.array
numpy
numpy.array
Clase 23
14 / 25
Python numpy numpy.array
array en numpy • Es el tipo b´ asico de Numpy, un arreglo n-dimensional de floats (puede
ser complejo) • Se deben crear expl´ıcitamente a trav´ es de la funci´on array • Recibe como par´ ametro una lista
• Se indexan y acceden igual que las listas b´ asicas de python • Soporta sub-listas y los mismos m´ etodos Ejemplo: Creaci´ on de array from numpy import * a = array ([10 , 20 , 30 , 40]) # arreglo 1 - D a = array ([[1 , 2] , [3 , 4]]) # arreglo 2 - D
Clase 23
15 / 25
Python numpy numpy.array
Otras formas de crear arreglos Ejemplo: Creaci´ on de array (m´as) from numpy import * a = arange (0 ,10) # array ( range (0 ,10) ) b = arange (0 ,10 ,0.5) # array ([0. ,0.5 ,1. ,... ,9.5]) c = zeros ((3 ,3) ) ceros d = ones ((3 ,3) ) unos e = d . copy () e . fill (7)
# arreglo 2 - d de 3 x3 lleno de # arreglo 2 - d de 3 x3 lleno de
# copia de d # llenar e con 7 s
f = linspace (1 ,10 ,8) # 8 eltos equidistantes en el rango 1 ,10 Clase 23
16 / 25
Operaciones aritm´eticas • Es posible aplicar operaciones aritm´ eticas a los array de numpy • array +-*/ array → suma/resta/multiplica/divide elemento con elemento • array +-*/ n´ umero → suma/resta/multiplica/divide cada elemento del array con el n´ umero • array ** n´ umero → eleva cada elemento del array al n´ umero • Tambi´ en soporta comparaciones Ejemplo: Operaciones aritm´ eticas con numpy.array from numpy import * a = arange (1 , 11 , 2) b = linspace ( -3 , 10 , 5) print a print b print a + b print a - 2 print a * b print b /2 print a **2
Python numpy numpy.array
Operaciones matem´aticas • Se pueden aplicar funciones matem´ aticas sobre cada componente del
arreglo Ejemplo: Operaciones matem´ aticas con numpy.array from numpy import * t = linspace (0 ,10 ,30) y1 = exp ( t ) # exp . de cada elemento de t y2 = sin ( t ) # seno de cada elemento de t y3 = log10 ( t ) # log base 10 y4 = log ( t ) # log base e y5 = sqrt ( t ) # raiz cuadrada # Tambien se pueden combinar y6 = 10.* exp ( t ) + 4.* sin ( t ) - log10 ( t ) / (1 + t **3) Clase 23
18 / 25
Python numpy numpy.array
M´etodos • numpy.array define una serie de m´ etodos adicionales a las listas
comunes. • Algunos de ellos: • fill(x) → todos los elementos del array toman el valor x • copy() → retorna una copia del array • resize(shape) → cambia las dimensiones del array, recibiendo una
tupla con el valor para cada dimensi´ on. • El array no puede estar siendo referenciado por otra variable • transpose() → retorna el array con los ejes transpuestos • En array de 1-D no provoca efectos. • flatten() → retorna una copia del array en 1-D • all() → retorna True si todos los elementos son verdaderos (en el
caso n´ umerico quiere decir distinto de 0) • any() → retorna True si alguno de los elementos es verdadero Clase 23
19 / 25
Python numpy numpy.array
M´etodos • M´ as m´etodos: • argmax/argmin([axis]) → retorna el ´ındice del mayor/menor elemento del array • Puede recibir como par´ ametro la dimensi´ on en la cual buscar • En el caso anterior retorna un array con el m´ aximo/m´ınimo en cada posici´ on • min/max([axis]) → retorna el mayor/menor elemento en el array • sum([axis]) → retorna la suma de los elementos del array • Si se le indica una dimensi´ on, retorna la suma en esa dimensi´ on • cumsum([axis]) → retorna un array con las sumas acumuladas para • • • • • Clase 23
cada posici´ on mean([axis]) → retorna el promedio de los elementos var([axis]) → retorna la varianza de los elementos std([axis]) → retorna la desviaci´ on est´andar de los elementos prod([axis]) → retorn el producto de los elementos cumprod([axis]) → retorna un array con el producto acumulado 20 / 25
Python numpy numpy.matrix
numpy
numpy.matrix
Clase 23
21 / 25
Python numpy numpy.matrix
numpy.matrix • Implementa el caso especial de arreglo 2D con interpretaci´ on matricial • Operaciones se realizan en el sentido matricial • Divisi´ on de matrices no est´a definida • Si A es matriz, su inversa es A.I y su transpuesta A.T • Se pueden combinar en operaciones con array (devuelve array) Ejemplo: Matrices from numpy import * a = matrix ([[1 ,2] ,[5 , -7]]) b = matrix ([[3 ,2] ,[1 ,8]]) c = a*b Clase 23
22 / 25
Python numpy numpy.matrix
Comparacion Ejemplo: Matrix vs. Array from numpy import * a = matrix ([[1 ,2] ,[5 , -7]]) b = matrix ([[3 ,2] ,[1 ,8]]) c = a*b d = array ([[1 ,2] ,[5 , -7]]) e = array ([[3 ,2] ,[1 ,8]]) f = d*e print c print f Clase 23
23 / 25
Python numpy numpy.linalg
numpy
numpy.linalg
Clase 23
24 / 25
Python numpy numpy.linalg
numpy.linalg • Provee funciones para hacer ´ algebra lineal • Soluci´ on de sistemas lineales A × x = b Ejemplo: Ecuaciones Lineales from numpy import * from numpy import linalg A = array ([[1 ,2 ,3] ,[5 , -7 ,3] ,[4 ,7 ,8]]) b = array ([[1] ,[ -5] ,[2]]) x = linalg . solve (A , b ) print x
Clase 23
25 / 25