Está en la página 1de 25

Python

ING1310 Introducci on a la Computaci on

Python
Listas y Arreglos

Mat as Recabarren - Andr es Moreno mrecabarren@uandes.cl - andres@moreno.cl


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 jo, 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 nal 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 nal (no la incluye) separadas por : Si no se indica la de inicio se asume que es la 0 Si no se indica la de nal 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

Modicaci on
Las listas son modicables: se pueden cambiar elementos, agregar elementos, eliminar elementos. Ejemplo: Modicar 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 nal de la lista
a[len(a):] = [x] extend(L) agrega la lista recibida al nal 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 tica:
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.array

numpy

Clase 23

14 / 25

Python numpy numpy.array

array en numpy
Es el tipo b asico de Numpy, un arreglo n-dimensional de oats (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 dene 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 denida 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

También podría gustarte