Está en la página 1de 46

Python para análisis de datos

Prof. Dra. Margarita Ruiz Olazar


margarita.ruiz@ucom.edu.py
Clase 1
• Que es computación?
• Lenguaje de programación Python
• Objetos, expresiones y operadores
• Variables y valores
• Jupyter notebook
• Práctica
https://www.tiobe.com/tiobe-index/
en fecha 16/04/2020
Variables y valores
• El signo igual es la asignación de un valor a un nombre de variable.

• pi = 3.14159
• pi_approx= 22/7

• El valor es almacenado en la memoria de la computadora.


• Una asignación asocia el nombre al valor
• Se recupera el valor asociado con el nombre o variable, invocando el nombre. Ej.
escribiendo pi
Asociación de valores a variables

Lenguajes fuertemente tipados

Lenguaje Python
Clase 2
• Variables y tipos
• Strings
• Tipos de datos compuestos
• Tupla
• Lista
• Set
• Diccionario
• Jupyter notebook
• Práctica
Variables, Tipos y Estructuras de datos
Objetos escalares
• int - representa enteros, ej. 5
• float - representa números reales, ej. 3.27
• Bool- representa valores booleanos verdaderos y falsos
• NoneType: special y tiene un valor, Ninguno
• puede usar type () para ver el tipo de un objeto
• Strings
Strings o cadenas de caracteres
• Letras, caracteres especiales, espacios, dígitos
• En Python los strings deben estar encerrados entre “comillas dobles” o
‘apóstrofes’
• hola = “hola a todos”
• saludo = ‘hola’
• También podemos concatenar strings
• nombre = “Ana”
• saludar = saludo + nombre
• saludos = saludo + “ ” + nombre
• La función len()es usada para obtener la longitud del string.
• s = “abc”
• len(s) -> retorna 3
String slicing o sub cadenas
• Indexación y partición de cadenas de caracteres son herramientas increíbles en
programación.
• Podemos pensar que estas cadenas pueden ser divididas en una grilla y cada carácter en
la cadena tiene su propio lugar en la grilla.
• Este lugar es el índice, definido por un entero que va de Cero en adelante para tantos
caracteres como contiene la cadena.

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]


Sub cadenas (cont.)
Que hago si necesito trabajar con un pequeño subconjunto del String?

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]

subCadena = a[inicio: fin: paso]


Índice del primer carácter
que queremos incluir en Índice del último carácter en el Indica como saltar de un
nuestro subcadena subcadena. No será incluído. El índice a otro. Determina
carácter inmediatamente a su cual carácter incluir.
izquierda será el último carácter.
Diferentes alternativas para [ ]
• a[3] = ‘m’ obtendremos el carácter en ese índice.
• a[:3] = ‘Uco’ obtendremos la parte de la cadena que inicia en el índice 0 hasta el
carácter localizado a la izquierda del índice 3.
• a[3:] = ‘m 2020’ obtendremos la parte de la cadena que inicia en el índice 3
hasta el carácter localizado al final de la cadena .
• [(número1) : (número2)], obtendremos la partición de la cadena que comienza
en número 1 y contiene todos los caracteres en adelante hasta el número 2, pero no
incluye el localizado en el número 2. Ej. a[2:6] = ‘om 2’

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]


Diferentes alternativas para [ ]
• a[::2] = ‘uo 00’, este número índica que caracteres serán incluidos, será el salto
desde el índice 0 al próximo índice hasta el final de la cadena.
• a[2:10:2] = ‘o 00’ determina la sub cadena que comienza en el índice 2,
incluyendo los caracteres saltando cada 2 índices. Incluye los índices 2, 4, 6 y 8.
• Si colocamos un número negativo en [- num], obtendremos el carácter localizado en la
posición len(cadena) – num. Ej. a[-3] = ‘0’, a[-1] = ‘0’
• Si incluimos solo ‘:’ sin números dentro de [ ]. Obtendremos una copia de la cadena. Ej.
a[:] = ‘Ucom 2020’

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]


Valores por defecto
Si no especificamos:
• El índice inicial, por defecto es [0], primer carácter de la cadena.
• El índice final, por defecto el índice final es el último carácter de la cadena.
• El paso, por defecto es 1 (incluye cada carácter)

a[::paso] # toda la cadena usando este paso

a[inicio::paso] # desde el índice inicio hasta el final


de la cadena usando este paso

a[:fin:paso] # desde el primer carácter de la cadena hasta


el final usando este paso
Paso con valor negativo
Cuando usamos pasos negativos estamos determinando que recorreremos la cadena de derecha a
izquierda.

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]

subCadena a[: : -1] = ‘0202 mocu’

a=“ U c o m 2 0 2 0 ”

[0] [1] [2] [3] [4] [5] [6] [7] [8]

subCadena a[8: 2: -2] = ’00 ’


Práctica
Listas
• Una lista es una secuencia ordenada de información, accesible por índice.
• Se denota por corchetes, [ ]
• Una lista contiene elementos,
• generalmente homogénea (ej. todos los enteros)
• puede contener tipos mixtos (no común)
• los elementos de la lista se pueden cambiar para que una lista sea mutable.
Índices
Operaciones sobre listas
a_list= [] retorna una lista vacía
L = [2, 'a', 4, [1,2]] retorna una lista lista ‘L’ con elementos de tipo heterogéneos
len(L) retorna 4 la cantidad de elementos de L
L[0] retorna 2
L[2]+1 retorna 5
L[3] retorna [1,2], otra lista!
L[4] da un error IndexError: list index out of range

i= 2
L[i-1] retorna ‘a’ ya que L[1]='a’
Cambiando elementos
• Listas son mutables;
• Asignando un valor a un elemento en un índice, cambia el valor:

• L es ahora [2, 5, 3], note que este es el mismo objeto L.

Usar id(L) para mostrar la posición de L en memoria


Operaciones sobre listas: append
• agregar elementos al final de la lista con L.append(element)
• muta la lista!

ahora

• que significa el punto?


• listas son objetos Python, todo en Python son objetos;
• objetos tienen datos;
• un objeto tiene métodos y funciones;
• Puedo hacer operaciones sobre el objeto haciendo:
nombre_objeto.hacer_algo()
Operaciones sobre listas: extend y +
• Para unir listas use el operador de concatenación ‘+’
• Para mutar la lista use L.extend(alguna_lista)

L3 es [2,1,3,4,5,6]

mutado
mutado L1 aa [2,1,3,0,6]
Operaciones con listas – del,pop,remove
• eliminar un elemento en un índice específico con del(L[índice])
• eliminar un elemento al final de la lista con L.pop (), devuelve el elemento eliminado
• eliminar un elemento específico con L.remove (elemento)
• busca el elemento y lo elimina.
• si el elemento aparece varias veces, elimina la primera aparición
• si el elemento no está en la lista, da un error.
Convertir listas a strings
• convertir un string en una lista con list(s), devuelve una lista donde todos los caracteres
de s son elementos en L;
• puede usar s.split(), para dividir un string según un carácter específico, se divide en
espacios si se llama sin un parámetro;
• usar ` ´.join(L) para convertir una lista de caracteres en un string, puede usar un
carácter entre comillas para agregar caracteres entre cada elemento
Otras operaciones
• Sort() y sorted()
• Reverse()
• y muchos otros. Ver en https://docs.python.org/3/tutorial/datastructures.html
Operaciones básicas sobre listas
• cmp(list1, list2) – compara elementos de ambas listas.

• len(list) – retorna la longitud total de la lista.

• max(list) – retorna el ítem de la lista con valor máximo.

• min(list) - retorna el ítem de la lista con valor mínimo.

• list(seq) – convierte una tupla en una lista.


Práctica
Tuple o Tuplas
• una secuencia ordenada de elementos, puede mezclar tipos de elementos.
• no pueden cambiar valores de elementos, son inmutables
• representado con paréntesis

te = () tupla vacía

t = (2,“ucom”,3)
t[0] retorna 2
t =(2,“ucom”,3) + (5,6) t retorna (2,“ucom",3,5,6)
t[1:2] slice tupla, evalúa a("ucom",)
t[1:3] slice tupla, evalúa a ("ucom",3)
len(t) retorna 3
t[1] = 4 error, no se puede modicar el objeto
Tuplas - usos
• Conveniente para intercambio de variables

• Usadas para retornar mas de un valor desde una función


Operaciones básicas
• len(tupla) – retorna la longitud total de la tupla
• del tupla – borra la tupla
• cmp(tuple1, tuple2) – compara elementos de ambas tuplas
• max(tupla) – retorna el item de la tupla com el máximo valor
• min(tupla) – retorna el item de la tupla com el valor mínimo
• tuple(seq) – convierte uma lista en tupla
Sets o conjuntos
• Python también incluye un tipo de datos para conjuntos.
• Un conjunto es una colección desordenada sin elementos duplicados.
• Los usos básicos incluyen pruebas de membresía y eliminación de entradas
duplicadas.
• Los objetos de conjunto también admiten operaciones matemáticas como unión,
intersección, diferencia y diferencia simétrica.
Crear un conjunto de tipo set
• Las llaves o set() se pueden usar para crear conjuntos.
• Nota: para crear un conjunto vacío, debe usar set(), no {}; este último crea un
diccionario vacío, una estructura de datos que discutiremos en la siguiente
sección.

>>> conjunto = set() # crea un conjunto vacío


>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print (basket) # muestra que duplicado fueron removidos
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # retorna TRUE verificación rápida de membresía
>>> ‘mango' in basket # retorna FALSE verificación rápida de membresía
Operaciones sobre conjuntos
La clase de set de Python representa la noción matemática de un conjunto.

>>> a = ('abracadabra')

>>> b = ('alacazam')
>>> a # a sin letras duplicadas {'a', 'r', 'b', 'c', 'd'}

>>> a - b # letras en a pero no en b {'r', 'd', 'b'}

>>> a | b # letras en a o b o ambos {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}

>>> a & b # letras en ambos a y b {'a', 'c'}

>>> a ^ b # letras en a o b pero no en ambos {'r', 'd', 'b', 'm', 'z', 'l'}
Almacenar información relacionada
• como almacenar información sobre los estudiantes?
nombres = ['Ana', 'John', 'Denise', 'Katy']
nota = ['B', 'A+', 'A', 'A']
curso = [2.00, 6.0001, 20.002, 9.01]

• una lista separada por cada tema;


• cada lista debe tener la misma longitud;
• la información almacenada en las listas tienen que estar en el mismo índice, cada índice se refiere
a información para una persona diferente.
Diccionarios
• práctico para indexar el elemento de interés directamente (no siempre el índice es int)
• es útil para usar como una estructura de datos, no hay listas separadas
Un diccionario Python
• Almacena pares de datos
• Clave (key)
• valor
Búsqueda en el diccionario
• similar a la indexación en una lista;
• busca la clave;
• devuelve el valor asociado a la clave;
• si no se encuentra la clave, recibe un error.
Operaciones sobre diccionarios
notas = {'Ana': 'B', 'Juan': 'A+', 'Denise': 'A', 'Kathy':'A'}

• Agregar un elemento
notas['Carlos']= 'A'

• Verificar si la clave existe en el diccionario 'Carlos' in notas # retorna True


'Daniel' in notas # retorna False

• Borrar una entrada del(notas['Ana'])

• Obtener una lista iterable de todas las claves


notas.keys() dict_keys(['Ana', 'Juan', 'Denise', 'Kathy'])

• Obtener una lista iterable de todos los valores


notas.values() dict_values(['B', 'A+', 'A', 'A'])
Claves y valores
• Valores
• Cualquier tipo (inmutable y mutable)
• Pueden ser duplicados
• Pueden ser listas, o otros diccionarios
• Claves
• Debe ser único
• De tipo inmutable (int, float, string, tupla, bool)
• Claves del tipo float pueden tener un comportamiento inesperado.
• No ordenado

d = {4:{1:0},(1,3):"doce", 'const':[3.24, 2.7, 8.44]}


Operaciones básicas sobre diccionarios

• cmp(dict1, dict2) – compara los elementos de ambos diccionarios.

• len(dict) - dá la longitud total del diccionario. Esto sería igual al número de


elementos en el diccionario.

• str(dict) - produce una representación de cadena de caracteres imprimible de un


diccionario.

• type(variable) - retorna el tipo de la variable pasada. Si la variable pasada es un


diccionario, entonces devolverá un tipo de diccionario.
Métodos sobre diccionarios
• dict.clear() – elimina todos los elementos del diccionario dict
• dict.copy() – retorna una copia del diccionario dict
• dict.fromkeys(seq[, value]) – crea un nuevo diccionario con elementos de seq como
las claves del diccionario.
• dict.get(key, default=None) – Para la clave key, retorna su valor o el valor por
defecto si la clave no está en el diccionario.
• dict.has_key(key) - retorna true si la clave está en dict, false de otra forma.
• dict.items() – retorna una lista de tuplas (clave, valor).
• dict.keys() – retorna una lista de las claves del diccionario dict.
• dict.setdefault(key, default=None) - similar a get(), pero asignará
dict[key]=default si key no está en dict.
• dict.update(dict2) – substituye los elementos de dict por dict2's
• dict.values() – retorna una lista de valores del diccionario dict.
List vs dict
• secuencia ordenada de elementos; • Mapea “claves” a “valores”;
• busca elementos por un índice entero; • Busca un ítem por otro ítem;
• los índices tienen un orden; • El orden no es garantizado;
• índices son enteros. • Claves pueden ser del tipo inmutable.
Práctica

También podría gustarte