1.7 - Introducción a Python para Deep Learning

Lección 7 de la sección “Introducción al Deep Learning” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior vimos una introducción a Google Colab, la plataforma que usaremos para implementar la totalidad del código del componente práctico de este curso. En esta lección veremos todos los fundamentos de Python, el lenguaje de programación más usado en la actualidad para implementar y entrenar diferentes modelos de Deep Learning.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Las listas

Las listas en Python son arreglos o contenedores donde podemos almacenar diferentes tipos de datos. Podemos tener por ejemplo una lista numérica, que contendrá (como su nombre lo indica) variables numéricas, o podemos tener una lista en donde almacenemos variables tipo string (es decir en formato de texto).

Existen dos maneras de crear las listas: de forma manual, es decir introduciendo uno a uno los elementos de la lista:

# Una lista simple puede contener cualquier tipo de dato
lista_numerica = [0.5, 1, 3, 27]
print(lista_numerica)

lista_strings = ['uno', 'trece', 'nueve']
print(lista_strings)

o de forma programática, usando la función range de Python (forma no recomendada):

lista = []
for i in range(0,20):
  lista.append(i**2)
print(lista)

o usando algo que se conoce como list comprehension una forma compacta de generar listas a través de Python:

lista = [i**2 for i in range(0,20)]
print(lista)

Indexación y slicing

Una vez creada la lista podemos acceder uno de sus elementos (lo que se conoce como indexación) o a una porción de ella (lo que se conoce como slicing).

El primer elemento de una lista siempre se indexa con la posición 0. Por ejemplo:

print(lista[0])

y el último elemento de una lista siempre se indexa con la posición -1:

print(lista[-1])

Si queremos de forma simultánea acceder a varios elementos de la lista (slicing) debemos usar los dos puntos (:). Por ejemplo, podemos usar cualquiera de estas dos líneas de código para imprimir en pantalla los primeros 5 elementos de la lista

print(lista[0:5]) #Elementos 0, 1, 2, 3, 4 (el 5 no se incluye)
print(lista[:5])  #Equivalente a la anterior

Si en lugar de los primeros 5 queremos imprimir en pantalla los últimos 5:

print(lista[-5:])

También es posible definir “saltos” mayores a 1. Por ejemplo, imprimir las posiciones 0, 2, 4, etc.:

print(lista[0::2])

O hacer algo similar a la línea de código anterior pero en orden inverso:

print(lista[::-2])

Funciones

En Python las funciones son porciones de código que se usan de manera repetitiva y que pueden ser agrupadas en un bloque de código (llamado precisamente “función”) para evitar copiar y pegar código una y otra vez:

Por ejemplo, en el siguiente código crearemos una función que permite calcular el promedio y la desviación estándar de una lista numérica:

import math

def calcular_promedio_desviacion(lista):
    # Calcular promedio
    promedio = sum(lista)/len(lista)

    # Calcular desviación
    lista_menos_promedio = [(x-promedio)**2 / len(lista) for x in lista]
    desviacion = math.sqrt( sum(lista_menos_promedio))

    return promedio, desviacion

En la línea anterior tan sólo hemos creado la función en memoria, para ejecutarla simplemente debemos llamarla:

lista_nros = [3, 27, 5, 2, 9]
prom, desv = calcular_promedio_desviacion(lista_nros)
print('Promedio: ' + str(prom))
print('Desviación: ' + str(desv))

Diccionarios

Se usan para almacenar datos en pares key-value. Por ejemplo, podemos crear un diccionario en donde almacenemos las letras del alfabeto (keys) y su correspondiente posición numérica dentro del alfabeto (values):

alfabeto = 'abcdefghijlmnñopqrstuv'

# Codificar cada letra del alfabeto con un número y almacenar los pares
# letra-número en un diccionario
car_a_num = { car:num for num,car in enumerate(alfabeto)}
print(car_a_num)

Una vez creado el diccionario podemos acceder a cualquiera de sus elementos usando el key correspondiente.

Ayuda y documentación

Es posible acceder a la ayuda contextual de cualquier módulo o función de Python escribiendo el símbolo ? después del nombre de la función

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Con este tutorial ya tenemos los elementos básicos para comenzar a elaborar programas sencillos en Python. Ahora comenzaremos a agregar elementos que complementan este funcionamiento básico, y que permiten a Python convertirse en un entorno de programación que nos permitirá resolver problemas mucho más complejos, haciendo uso de librerías externas.

En la próxima lección hablaremos de la primera de estas librerías: Numpy. En particular veremos una introducción de los elementos esenciales de Numpy para Deep Learning.

Ver todas las lecciones de este curso