Fundamentos de Programación Recomendaciones Mantener los micrófonos silenciados a menos que deseemos participar Levantar la mano antes de participar o escribir sus preguntas por el chat Educación Ejecutiva UTEC JOHN CABALLERO GERENTE ADJ DATA SCIENTIST ● Ing. Estadístico/Ms Analytics Management especialista en Analytics, Machine learning, deep learning. ● Experiencia en uso de herramientas cloud para el desarrollo de Big Data. ● Docente de metodologías de machine learning y deep learning. ¿Qué aprenderemos en el curso? Agenda ● ● ● ● ● Introducción a Python Elementos básicos: tipos de datos, constantes, variables, operadores, expresiones aritméticas. Estructuras de datos: listas Estructuras selectivas y repetitivas: Comando If/else, For, While Módulo Pandas y operaciones básicas Introducción a Python Introducción ● ● ● Educación Ejecutiva UTEC Es un lenguaje orientado a objetos y de alto nivel. Gracias a su sintaxis sencilla es un muy buen lenguaje para aprender a programar. Python utiliza módulos y paquetes lo cual fomenta la modularidad y la reutilización de código. Python comenzó a concebirse a finales de los 80 y su implementación fue iniciada en diciembre de 1989 por Guido van Rossum (Países Bajos). Motivos para su uso Educación Ejecutiva UTEC Motivos para su uso ● Educación Ejecutiva UTEC Python es un lenguaje muy simple, por lo que es muy fácil iniciarse en este lenguaje. El pseudo-código natural de Python es una de sus grandes fortalezas. Motivos para su uso ● Educación Ejecutiva UTEC Gran red de apoyo y soporte disponible en foros, blogs, Facebook, etc. Empresas que usan Python Educación Ejecutiva UTEC Versiones de Python PYTHON 2 Educación Ejecutiva UTEC PYTHON 3 Donde programar en Python Educación Ejecutiva UTEC Interfaz lenguaje de programación intérprete motor -> procesamiento en nube Educación Ejecutiva UTEC Repositorios GIT Educación Ejecutiva UTEC El Zen de Python PROGRAMACIÓN CON PYTHON Hermoso es mejor que feo Los programadores de Python aceptan la idea de que el código puede ser hermoso y elegante. En la programación, las personas resuelven problemas. Los programadores siempre han respetado las soluciones bien diseñadas, eficientes e incluso hermosas a los problemas. A medida que aprenda más sobre Python y lo use para escribir más código, alguien podría mirar por encima de su hombro un día y decir: "¡Vaya, ese es un código hermoso!" Lo simple es mejor que lo complejo. “Si puede elegir entre una solución simple y una compleja, y ambas funcionan, use la solución simple. Su código será más fácil de mantener y será más fácil para usted y para otros desarrollar ese código más adelante.” Complejo es mejor que complicado La vida real es complicada y, a veces, una solución simple a un problema es inalcanzable. En ese caso, use la solución más simple que funcione. La legibilidad cuenta. Incluso cuando su código sea complejo, trate de hacerlo legible. Cuando esté trabajando en un proyecto que implique una codificación compleja, concéntrese en escribir comentarios informativos para ese código. Debe haber una, y preferiblemente sólo una, forma obvia de hacerlo. Si se le pide a dos programadores de Python que resuelvan el mismo problema, deberían encontrar soluciones bastante compatibles. Esto no quiere decir que no haya lugar para la creatividad en la programación. ¡De lo contrario! Pero gran parte de la programación consiste en utilizar enfoques pequeños y comunes para situaciones simples dentro de un proyecto más grande y creativo. Los aspectos prácticos de sus programas deberían tener sentido para otros programadores de Python. Ahora es mejor que nunca. Podrías pasar el resto de tu vida aprendiendo todas las complejidades de Python y de la programación en general, pero luego nunca completarías ningún proyecto. No intentes escribir un código perfecto; escriba código que funcione y luego decida si mejorar su código para ese proyecto o pasar a algo nuevo. Elementos básicos Tipos de datos simples en python ● Son los tipos de datos básicos en python son los elementos fundamentales para cualquier operación o cálculo. Numéricos Educación Ejecutiva UTEC Carácter Booleano Enteros: 5, 10, 0 Son atributos basados en texto: Son atributos que comprenden dos valores Floats: 2.14, 0.05 “Hola”, “Me gusta python” Verdadero, Falso Operadores Aritméticos ● Educación Ejecutiva UTEC Un operador aritmético toma dos valores como entrada, realiza un cálculo y devuelve el resultado. Operador Descripción Ejemplo + Adición 12 + 3 = 15 - Substracción 12 - 3 = 9 * Multiplicación 12 * 3 = 36 / División 12 / 3 = 4 % Módulo 16 % 3 = 1 ** Potencia 12 ** 3 = 1728 // División con resultado de número entero 18 // 5 = 3 Operadores Relacionales ● Educación Ejecutiva UTEC Un operador relacional se emplea para comparar y establecer la relación entre valores. Devuelve un valor booleano (true o false) basado en la condición. Operador Descripción Ejemplo > Mayor que 12 > 3 devuelve True < Menor que 12 < 3 devuelve False == Igual que 12 == 3 devuelve False >= Mayor igual que 12 >= 3 devuelve True <= Menor igual que 12 <= 3 devuelve False != Es diferente que 12 != 3 devuelve True Estructuras de datos Listas Educación Ejecutiva UTEC ● Es un conjunto de valores (ítems) separados por comas entre corchetes. ● Pueden contener ítems de diferentes tipos, pero usualmente los ítems son del mismo tipo. ● Las listas son heterogéneas: pueden estar conformadas por elementos de distintos tipos, incluidos otras listas. ● Las listas son mutables: sus elementos pueden modificarse Listas Educación Ejecutiva UTEC ● Los elementos de una lista pueden accederse mediante su índice, siendo 0 el índice del primer elemento. ● Los índices de una lista inician de 0 hasta el tamaño de la lista menos uno. Por ejemplo para la lista 1. Estructuras selectivas y repetitivas Estructura Selectiva Simple comando if/else FALSE Condición Educación Ejecutiva UTEC TRUE Proceso Comando if/else • Los condicionales if, else, en Python se utilizan para ejecutar una instrucción en caso de que una o más condiciones se cumplan. • Un condicional es como el momento en que se debe tomar una decisión en nuestro programa o script y dependiendo la decisión que se tome ocurrirá una cosa u otra, o ninguna. • Las estructuras de control de flujo condicionales, se definen mediante el uso de tres palabras claves reservadas, del lenguaje: if (si), elif (sino, si) y else (sino). Educación Ejecutiva UTEC ¿Qué es la identación? •En un lenguaje informático, la identación es lo que la sangría al lenguaje humano escrito (a nivel formal). • No todos los lenguajes de programación, necesitan de una identación, aunque se estila implementarla, a fin de otorgar mayor legibilidad al código fuente. Pero en el caso de Python, la identación es obligatoria, ya que de ella, dependerá su estructura. • Por ejemplo, Una identación de 4 (cuatro) espacios en blanco, indicará que las instrucciones identadas, forman parte de una misma estructura de control. Educación Ejecutiva UTEC Estructura Selectiva anidada comando elif FALSE FALSE Condición 1 Educación Ejecutiva UTEC Condición 2 TRUE TRUE Proceso 1 Proceso 3 Proceso 2 Estructura iterativa Condición TRUE Proceso Educación Ejecutiva UTEC FALSE Comando For El bucle for, en Python, es aquel que nos permitirá iterar sobre una variable compleja. Educación Ejecutiva UTEC Comando While Este bucle, se encarga de ejecutar una misma acción “mientras que” una determinada condición se cumpla: Educación Ejecutiva UTEC Comando Break En Python, la instrucción break le proporciona la oportunidad de cerrar un bucle cuando se activa una condición externa. Debe poner la instrucción break dentro del bloque de código bajo la instrucción de su bucle, generalmente después de una instrucción if condicional. Educación Ejecutiva UTEC Módulo Pandas Librería Pandas Pandas es una librería de Python especializada en la manipulación y el análisis de datos. Ofrece estructuras de datos y operaciones para manipular tablas. Educación Ejecutiva UTEC Caso: Titanic ML for disaster El hundimiento del Titanic es uno de los naufragios más infames de la historia. El 15 de abril de 1912, durante su viaje inaugural, el RMS Titanic, ampliamente considerado "insumergible", se hundió tras chocar con un iceberg. Desafortunadamente, no había suficientes botes salvavidas para todos a bordo, lo que resultó en la muerte de 1502 de los 2224 pasajeros y la tripulación. Enlace del caso: https://www.kaggle.com/c/titanic/overview Estructura de datos en pandas Index Las tablas de pandas son como tablas de excel, se distribuyen en filas y columnas y además son observaciones indexadas. índice Educación Ejecutiva UTEC Agregaciones en pandas groupby / agg Las agregaciones se resuelven en pandas se revuelven mediante métricas de agregación como promedios, sumas, conteos, etc. Educación Ejecutiva UTEC Medias móviles en Pandas Rolling / shift rolling: Indica el tamaño de la ventana de agregación shift: Indica el punto de posición donde se colocará el cálculo Importante: Para que el cálculo de medias móviles sea correcto es necesario que los datos estén ordenados de forma temporal Educación Ejecutiva UTEC ¿Preguntas? Gracias!!!