2
RESPONSABLE EXPERTO DE DATA
Nociones iniciales de Python,
data engineering y
estadística
PA RT E I
ÍNDICE
2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14
Desarrollo de Identificación Análisis de los Conocimientos
los fundamentos de los fundamentos avanzados de
de Big Data fundamentos de IA: Visión, Python Crash
de Machine NPL... Course
Learning
PA RT E I
2.1 Desarrollo de los
fundamentos de
Big Data
C O M E N Z A R
+15K
¿ Q U É E S E L B I G D ATA?
Obtener insights
El Big Data engloba el conjunto masivo de datos
generados por una empresa a lo largo de todo su ciclo
de vida y las herramientas que se utilizan para analizarlos.
Así, se obtienen insights (información de valor) que
usualmente no se “ven” y que nos sirven para la toma de
decisiones estratégicas en la empresa. Ahí radica el éxito
del big data.
Pasos para construir Proyecto big data
1 3 5
Definir el objetivo Limpiar los datos Encontrar insights
7
Iterar
2 4 6
Obtener los datos Enriquecer los datos Desplegar Machine Learning
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
1 Definir el objetivo
Entender tu actividad. El primer paso consiste en
entender los entresijos del propio negocio o
actividad. Para ello, lo fundamental inicialmente es
informarse bien de toda la operativa. ¿Cómo? Con los
profesionales que están a su cargo. Tras esto, toca
sentarse, y planificar: plan de hitos, KPIs (key
performance indicators) y KER (key expected results).
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
2 Obtener los datos
Buscar los datos. Ya has entendido lo que quieres. Ahora
debes buscar los datos en los que te apoyarás para cumplir
los objetivos marcados. ¿Cómo? Puedes beneficiarte de
bases de datos existentes, aprovecharte de los recursos
que te brindan APIs (Application Project Interfaces)
comerciales o tirar por ejemplo de datos abiertos (open
data) usando extractores web (o chupones).
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
3 Limpiar los datos
Adaptar los datos. Ya tienes todos tus datos, pero están
desperdigados, desordenados… Necesitas limpiarlos. Y
para ello te urge ajustar su formato (no querrás, por
ejemplo, que en una misma columna tengas filas con
distintos decimales para una misma categoría de
información). Y ¡ojo! Ten cuidado con las leyes de
protección de datos y privacidad del país donde
operas. No olvides que, si bien esta es la tarea más larga
y complicada (80% del tiempo), es la más importante.
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
4 Enriquecer los datos
Ahora que tienes todos tus datos arreglados, lo que deseas es
manipularlos para que se multiplique x10 el valor que dan.
¿Cómo? Juntando datasets, combinando columnas y
categorías de datos (por ejemplo, si tienes fechas, calculando
intervalos de tiempo para ajustar KPIs), etc. para mejorar los
resultados del análisis que vas a realizar posteriormente y
facilitarle la vida al algoritmo de Machine Learning.
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
5 Encontrar insights
Saborea tus datos. Ya dispones de tus conjuntos de datos
arreglados y enriquecidos. ¿Cuál es la major manera de
sacarles partido? Con la visualización. PowerBI, Grafana,
Tableau, etc. son plataformas que te ayudarán a representar
gráficamente todos los datos que ya obtuviste en el paso
anterior, obteniendo una serie de insights para ayudarte a
tomar decisiones, reforzar tus planteamientos, o alimentar
algoritmos de Machine Learning para un mejor
aprovechamiento.
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
6
6 Desplegar Machine
Learning
Predice. El siguiente paso es el más divertido. Ve un
paso más allá utilizando algoritmos de machine learning
que te ayudarán a extraer tendencias ocultas, que no
pudiste ver en el paso anterior. ¿Cómo? Usando
clustering (juntando datos en función de la correlación
de parámetros), aprendizaje supervisado (hacer
predicciones a partir de datos anteriores), etc. Y no solo
vale con esto, también tienes que desplegar en una
arquitectura operativa para sacarle partido de forma
recurrente.
PASOS PARA CONSTURIR UN PROYECTO BIG DATA
6
7 Iterar
Y vuelta a empezar…pero no de cero. Uno de
los mayores errores que se cometen en este tipo
de proyectos es creer que una vez que se llega al
punto 6 ya está todo hecho. Irónicamente, para
tener éxito a la hora de completar proyectos de
Big Data, se hace necesario aceptar que “nunca”
estará totalmente completado. Es imperativo,
pues, retomar desde el principio los pasos e
iterar, iterar, e iterar… de forma recurrente.
PERFILES NECESARIOS PARA UN PROYECTO DE BIG DATA
Ingeniero de datos
El ingeniero de datos es el profesional encargado de sentar las
bases para la adquisición, el almacenamiento, la transformación
y la gestión de los datos en una organización. Viene a ser la
puerta de entrada de los datos a la organización, preparando
todo el “tinglado” para hacerlo accesible a los perfiles de
analista de datos y científico de datos, que operarán con esa
información “arreglada” después.
Tienen que saber manejar motores de bases de datos como
SQL y NoSQL, tener experiencia en Cloud (AWS) y en sistemas
como Hadoop. Tener soltura con python es también, muy
recomendable.
PERFILES NECESARIOS PARA UN PROYECTO DE BIG DATA
Analista de datos
El analista de datos es el perfil Big Data que transforma los
datos en información de valor para poder llevar a cabo una
toma de decisiones más completa en la organización.
Basicamente se encarga de extraer información crítica para la
toma de decisiones de la empresa a partir de los datos
proporcionados por el Ingeniero de Datos. Entre sus tareas
principales, tiene que explorer, pre-procesar, analizar y
comunicar los resultados al personal interesado,
normalmente directivo, usando herramientas como Tableau,
Carto, Grafana, etc. todas ellas basadas en visualización.
Además, ha de tener buena vision de negocio, conocer el
sector y contar con buenas soft skills.
PERFILES NECESARIOS PARA UN PROYECTO DE BIG DATA
Arquitecto de big data
Este perfil establece el puente entre los científicos e ingenieros de
datos (más hacia la parte técnica/laboratorio/silo de la organización)
y el analista de datos y el personal directivo de la organización (más
business-related), a cargo de la toma de decisiones.
Cualquier empresa que quiera construir un entorno de Big Data
necesitará un arquitecto de Big Data que pueda gestionar
cómodamente el ciclo de vida completo desde la obtención
/recolección de datos hasta la presentación. Este perfil tiene un cariz
multinivel ya que gracias a su aportación, se dispone de toda la
infraestructura que sirve para cada tarea que el resto de perfiles
realizan.
PERFILES NECESARIOS PARA UN PROYECTO DE BIG DATA
Especialista en IA
Está claro que contar con analistas de datos da una dimensión
especial y necesaria al Proyecto de Big Data, en lo referente a la
toma de decisiones. Pero contar con un especialista en
Inteligencia Artificial, en sus vertientes de Machine Learning y,
más en concreto, Deep Learning, refuerza el potencial de este
tipo de proyectos. ¿Cómo? Gracias al poder de la predicción, ya
que es posible desarrollar algoritmos que sean usados con fines
predictivos y refuercen la toma de decisiones.
Son perfiles muy escasos que cada vez exigen competencias más
específicas, y que requieren un aprendizaje continuo en el tiempo.
PERFILES NECESARIOS PARA UN PROYECTO DE BIG DATA
Científico de datos
El analista de datos es el perfil que más se parece a un científico
de datos, pero la diferencia principal es que, mientras que el
analista analiza con mentalidad de negocio, el científico lo hace
desde un punto de vista más puro, más de I+D y sin
necesariamente tener que extraer conclusiones que puedan
usarse en la toma de decisiones. Como tal, es un perfil estratégico,
más relacionado con la búsqueda de valor oculto que, por su
complejidad, el analista no es capaz de identificar.
Preferiblemente ha de contar con un background investigador,
con publicaciones científicas en la materia de renombre y con
vinculaciones fuertes hacia el sector académico.
ARQUITECTO DE
B I G D ATA
insights
datos decisiones
A N A L I S TA
INGENIERO D E D AT O S
D E D AT O S
CIENTÍFICO E S P E C I A L I S TA
D E D AT O S EN IA
Arquitecturas big data
Cualquier arquitectura de Big Data presenta tanto los datos de
entrada como la información accionable de la salida. Las
diferencias clave están en los bloques internos de
procesamiento de información, y para ello definimos algunos
conceptos primero:
D at a H u b EDW D at a L a ke
También conocido como centro Se traduce como almacén de Se almacenan los datos
de datos, el objetivo es integrar datos. Por norma general este originales de las fuentes
todos los datos en un mismo sistema se suele utilizar aglomerándose una gran
centro de procesamiento. principalmente para los informes cantidad de información de
Permitiendo que estos datos se y los análisis de datos. Se usa todo tipo. Utiliza desde los
ordenen, analicen o se hagan sobre todo para disponer de un datos estructurados a los no. La
visibles para las herramientas de centro donde el almacenamiento estructura de los datos no
BI. es clave, independientemente del queda definida a no ser que
nivel de procesado. verdaderamente tengamos esa
necesidad.
Almacén de datos de la empresa
(EDW) aumentado
Básicamente, se parte de todas las bases de datos
existentes en la empresa las cuales sirven como
refuerzo a los datos procedentes de fuentes que, ahora
sí, van directos al repositorio de Big Data gestionado
por la arquitectura.
El principal inconveniente que tiene este modelo es
que el EDW actúa como cuello de botella, reduciendo
la eficiencia del sistema al no incorporar las ventajas
del Repositorio de Big Data. Por tanto, no es escalable.
Almacén de datos de la empresa
(EDW) aumentado
Big data sources
( R a w, u n s t r u c t u r e d )
Sensors
Big data repository
Devices
Web logs
B/I Reporting
tools
Social Source EDW
systems
Hub de datos + EDW
Dichos datos “trabajados” se envían al EDW, de quien
se aprovechan las herramientas de visualización y
Business Intelligence para la visualización de datos y
la toma de decisiones.
El principal inconveniente que presenta esta
arquitectura es la rigidez del EDW, que no tiene la
misma flexibilidad que el Data Hub en la interacción
con las herramientas de visualización y BI, con lo cual,
se desaprovecha todo el potencial que tiene.
Hub de datos + EDW
Big data s ources
( R( RaAw,
W , UuNn
E SsTtRrUuCc
TUtu
R ErDe) d )
Sensors
Big data B/I Reporting
repository tools
Devices
Web logs
EDW
Social Source
systems
Todo en 1
Los principales inconvenientes que tiene
este modelo es que el al concentrar toda la
labor de procesamiento y almacenamiento
en el mismo bloque, las peticiones suelen
acusar mayor lentitud al procesarse.
Además, al no contar con un EDW, es
posible que el formato de salida de los
datos sea más complicado de comprender
y escalar, podría haber problemas de
seguridad, etc.
Es válido para proyectos pequeños.
Todo en 1
B ig dat a s ources
( R a w, u n s t r u c t u r e d )
Sensors
Big data
repository
Devices
Web l ogs
Social B/I Reporting
Source tools
systems
EDW Moderno
En realidad, el data lake actúa como un centro de
procesamiento avanzado de los datos, que los
harmoniza y analiza, para llevarlos directamente
a las herramientas de visualización y BI, o que se
hacen pasar por el EDW para incrementar la
velocidad de respuesta y la efectividad.
A diferencia de un Data Hub, un data lake es como
un lago de agua cristalina donde se almacenan los
datos, tanto estructurados como no, y que permite
evitar la necesidad de “arreglar” los datos como
en el Data Hub cuando en realidad no es
imperativo hacerlo, otorgando mayor flexibilidad.
EDW Moderno
Big data s ources
( R a w, u n e s t r u c t u r e d )
Sensors
Big data B/I Reporting
repository tools
Devices
Web logs
EDW
Social
Source
systems
2.2 Identificación de
los fundamentos
de Machine
Learning
C O M E N Z A R
+15K
PA S O S PA R A C O N S T R U I R U N M O D E L O D E M A C H I N E L E A R N I N G
1 2 3 4
Data Feature Data Performance
preparation engineering modeling measure
PA S O S PA R A CO N S T R U I R U N M O D E LO D E M L
1 Data preparation
En la preparación de datos nuestro objetivo es recurrir a
las fuentes donde vamos a encontrar los datos que
usaremos para entrenar nuestro modelo, esto es, audio,
voz, texto, imágenes, etc.
Dichas fuentes nos proporcionarán los datos que
necesitamos, pero en formatos o en estados que no nos
sirven de primeras. Por ejemplo, podríamos recibir
datos de una fuente en un formato de hoja Excel.
Sin embargo, si para nuestros modelos los datos han de
estar en formato CSV, entonces tendremos que hacer la
conversión necesaria. Es así que, entonces, podremos
lidiar con la segunda fase
PA S O S PA R A CO N S T R U I R U N M O D E LO D E M L
2 Feature engineering
Por ejemplo, imaginemos que queremos predecir la
estación meteorológica en una zona geográfica a partir
de los datos ofrecidos por sensores de calidad del aire.
Dichos datos se corresponden con la temperatura, la
humedad, la concentración de contaminantes en
suspensión y la concentración de CO2.
A priori, y según nuestra intuición, entendemos que la
temperatura constituye una magnitud que está
estrechamente relacionada con la estación
meteorológica. Al seleccionar la temperatura como
característica principal de nuestro modelo de
predicción, ya podríamos pasar al paso 3.”
PA S O S PA R A CO N S T R U I R U N M O D E LO D E M L
3 Data modeling
Este paso consiste en diseñar o seleccionar un
modelo de machine learning a cuya entrada tenga
disponibles los datos y a cuya salida genere la
respuesta correcta. Para ello, primero hemos de
entrenar el modelo, inyectando todo nuestro dataset
de entrenamiento junto con las respuestas dadas a
cada muestra.
El modelo ha de aprender a inferir la respuesta en
función del dataset de ejemplo y dar, a la salida, el
valor correcto. En función de la tasa de acierto que
tiene el modelo, se genera una métrica de
rendimiento que es la que usamos en el siguiente
paso.
PA S O S PA R A CO N S T R U I R U N M O D E LO D E M L
1 2 3 4
Data Feature Data Performance
preparation engineering modeling measure
Performance
improvement
Hablamos de un proceso iterativo,
que se repite hasta que el modelo
alcanza el rendimiento deseado
¿CÓMO APRENDEN LAS MÁQUINAS?
A la máquina le decimos cuál es La máquina ha de aprender, por sí
la reacción (resultado) frente a sola, a aislar patrones y/o
un conjunto de estímulos (datos) comportamientos que aporten
que le sirven de entrenamiento. información. Además, ha de
hacerlo sin que se le de ningún
conjunto de datos de
entrenamiento.
¿CÓMO APRENDEN LAS MÁQUINAS?
La máquina aprende a tomar decisiones a partir de
ejemplos de datos anteriores disponibles.
Ejemplos de problemas: Determinar si un correo es spam,
?
lo cual es un problema de clasificación, o determinar el
precio de un piso teniendo a otros de referencia,
problema de regresión.
¿CÓMO APRENDEN LAS MÁQUINAS?
La máquina de aprendizaje aprende a identificar patrones
o tendencias dentro de los datos sin contar con ejemplos
previos. Es decir, lo hace por su cuenta, sin contar con
ayuda previa. ?
Algunos ejemplos que veremos después son agrupamiento
por k- medias, análisis de componentes principales, etc.
OTROS TIPOS DE APRENDIZAJES
Combina los dos anteriores. Se tienen en cuenta los datos
etiquetados y los no etiquetados.
Costruye un modelo con Inserta datos Usa el modelo para etiquetar Vuelve a entrenar el modelo
datos etiquetados. NO etiquetados. datos NO etiquetados. otra vez con todo combinado.
OTROS TIPOS DE APRENDIZAJES
Enviroment
Action
La máquina aprende a partir del resultado, esto es,
recompensa y estado, de sus acciones en el entorno.
Por ejemplo, nuestra aspiradora cuando aprende cuáles
son las zonas por las que ha de aspirar y cuáles no en Interpreter
función de si golpea la pared.
Agent
Labeled
samples
Unabeled
samples
Supervised Unsupervised
Learning Learning
Decision
Boundary
Decision
Boundary
estimated only
with labeled
samples
Semi-Supervised
Learning
2.3 Análisis de los
fundamentos de
IA: Visión,
NPL...
C O M E N Z A R
+15K
42
Agentes de inteligencia artificial
La Inteligencia Artificial se ha segmentado para poder evolucionar de
manera más rápida y, con ello, ha generado diferentes agentes.
Encontramos cuatro tipos de agentes:
Máquinas reactivas (IA en su forma básica)
IA con memoria limitada
Máquinas basadas en la teoría de la mente
IA con conciencia de sí misma
43
Tipos de agentes 01 Máquinas reactivas. IA en su
forma más básica:
Son las máquinas más fáciles de entender, ya que se acercan
mucho al funcionamiento de un ordenador, a las cuales se les
proporcionan unos datos, los procesan y obtienen un
resultado.
Este tipo de máquinas tiene una base de datos, en la que se
encuentra la información y los conocimientos para combinarla
y usarla con el fin de lograr un resultado satisfactorio.
44
Tipos de agentes 02 Inteligencia artificial con
memoria limitada:
Son aquellos que se están expandiendo.
Su nombre no significa que tengan una memoria física
pequeña, sino que se refiere a la capacidad que tiene para
registrar experiencias pasadas para emplearlas a la hora de
tomar decisiones.
Se utiliza, por ejemplo, en la IA integrada en los dispositivos
móviles o en los asistentes por voz. Utilizan el aprendizaje
automático para añadir nueva información en su base de
datos, con el fin de mejorar su funcionamiento, y se añade en
base a los conocimientos base del sistema.
Otro ejemplo sería la IA que emplean los coches autónomos,
que se basan en datos externos provenientes de las señales,
obstáculos, calles... y otros datos que cambian
constantemente, como la velocidad o la aceleración.
45
Tipos de agentes 03 Máquinas basadas en la
teoría de la mente:
La teoría de la mente sostiene que los seres vivos tienen
pensamientos y emociones que afectan a la forma en que se
comportan y también a las decisiones que toman.
Este debe ser el primer paso para que la inteligencia artificial
se integre en la sociedad, pero no como un mero dispositivo.
Esta base hace que la IA funcione de una manera más
humana, es decir, que entienda las emociones de los
interlocutores y muestre unas propias.
Se encuentra en fase experimental, aunque hay procesos ya
capaces de detectar estados de ánimo.
46
Tipos de agentes 04 Inteligencia artificial con
conciencia de sí misma
Las anteriores se encuentran en fase experimental, mientras
que esta categoría se encuentra todavía en un estado
teórico.
Esta sería la inteligencia más cercana a los humanos. La
máquina sería capaz de entender sus sentimientos y podría
ponerlos en contexto, con una perspectiva de los mismos.
47
Áreas de aplicación de la Inteligencia Artificial
Formación directiva:
Se emplea para hacer más rápida y simple la toma de
decisiones. Existen una serie de sistemas de entrenamiento
basados en hechos reales para formar a los directivos en el
momento de tomar una decisión.
Servicios financieros:
La IA puede dar a conocer a una organización financiera el
riesgo que puede suponer un cliente, recomendar
operaciones o predecir una serie de patrones de mercado y
los efectos que conlleva.
Todo de una forma automática, con la que obtener
respuestas y estudios detallados que ayuden a los
empleados.
48
Comercio:
Actualmente, la Inteligencia Artificial ofrece pronósticos de
venta y escoge los artículos apropiados para
recomendárselos a un cliente en concreto. Un ejemplo
podría ser Amazon, que utiliza estos avances para la
identificación del éxito que puede tener un producto,
incluso antes de ponerlo a la venta.
La optimización de inventario permite prever ingresos y
poder determinar la cantidad de artículos que es necesario
adquirir para poner a disposición de los clientes.
En cuanto al transporte, la IA permite programar viajes en los
momentos óptimos y a través de las mejores rutas, de
acuerdo a ciertas variables.
49
Educación:
La IA permite crear servicios capaces de detectar si un
estudiante va a abandonar su participación en un curso y, con
ello, es posible sugerirle otras alternativas formativas. Incluso
permite el diseño de ofertas más personalizadas, para así
optimizar el aprendizaje y fomentar la educación.
También ayuda a acabar con las tareas repetitivas que se
realizan, que suponen una pérdida de tiempo y energía que se
podrían aprovechar para otros procesos. No solo eso, la
corrección de exámenes y trabajos también pueden hacerlo
sistemas con más rapidez y precisión, y con ello se pueden
obtener datos, de forma transversal, que podrán ser utilizados
para estudios de la educación.
50
Salud y biotecnología:
En el sector de la salud, la Inteligencia Artificial está siendo de
gran ayuda para los médicos y pacientes, en cuanto a mejorar
los diagnósticos con el fin de que sean lo más precisos y
rápidos posibles. Uno de los ejemplos más destacados es la
identificación del cáncer mediante muestras de sangre. Las
muestras contienen una enorme cantidad de datos que deben
ser estudiados para determinar patrones. La tecnología IA
permite identificar los factores genéticos que podrían
ocasionar una enfermedad.
A través de la IA se han logrado grandes avances en este
sector, como fármacos que actúan sobre proteínas dúctiles,
con nuevas posibilidades de tratar el cáncer y otras
enfermedades; así como beneficios para la salud pública,
como puede ser el envasado y seguimiento avanzado de
alimentos, que mejoran la seguridad alimentaria.
51
Asistencia y atención al cliente:
Al igual que lo utilizamos en nuestro dispositivo móvil, un
asistente virtual puede organizarnos la agenda con las reuniones
previstas, nos recomienda contactos, artículos, o incluso puede
hacer un seguimiento de las tareas del ámbito laboral de un
empleado.
Los chatbots inteligentes son capaces de resolver dudas e
incluso de resolver incidencias, haciendo que las empresas
alcancen ahorros significativos en lo referido al soporte y
atención al cliente. Incluso pueden aprender un idioma y sus
variaciones, generando conocimiento a través de las
interacciones que realizan, por lo que las conversaciones son
cada vez más fluidas. Para las empresas es muy útil, ya que les
permite, por ejemplo, conocer cuáles son las preguntas más
frecuentes sobre un producto o servicio.
52
Marketing:
La IA es muy eficiente para atraer usuarios a la página web
mediante la creación de contenido, ya que es capaz, por
ejemplo, de redactar noticias o reportes basándose en
información y datos.
Además de generar el contenido, también puede curarlo para
mostrarlo, por ejemplo, después de ver un video o de que un
cliente compre un producto, incluso realizando
recomendaciones muy avanzadas. Posteriormente, estudiará la
reacción y el efecto que causa la recomendación sobre cada
usuario, justo después de recibirla.
Es de gran ayuda en la publicidad, ya que dispone de
algoritmos capaces de predecir acciones de compra de los
clientes, favoreciendo y simplificando el proceso de crear una
campaña publicitaria una vez sabemos lo que los clientes
buscan.
53
Algoritmos de
inteligencia artificial:
A pesar de que, de manera genérica, hablemos de “algoritmos de Inteligencia
Artificial”, el término más adecuado para referirnos a ellos es el de “algoritmos de
Machine Learning”.
A modo de aclaración, debemos tener en cuenta que el concepto de Inteligencia
Artificial abarca todo el conjunto de tecnologías que engloban al propio Machine
Learning.
2.4 Conocimientos
avanzados de
Python Crash
Course
C O M E N Z A R
+15K
¿Qué es Phyton?
Python es un lenguaje de programación interpretado
cuya filosofía hace hincapié en una sintaxis muy limpia y
que favorezca un código legible.
Historia de Python
Guido van Rossum
Características de Python
SIMPLE
SENCILLO DE APRENDER
LIBRE Y FUENTE ABIERTA
INDENTADO
L E N G U A J E D E A LTO N I V E L
PORTABLE
INTERPRETADO
ORIENTADO A OBJETOS
AMPLIABLE
INCRUSTABLE
CUENTA CON LIBRERÍAS EXTENDIDAS
APLICACIÓN BÁSICA
“Hola Mundo”
Comentarios
• Antes que nada los comentarios están marcados con el signo # esto es importante para
poder entender el código fuente del programa en un futuro.
• Es muy útil para preparar el código en las empresas por si hay futuros programadores
que complementarán o sustituirán a los actuales
• Los comentarios NO se ejecutan y son ignorados por el interprete de Python.
Variables
• Podemos declarar variables de tipo entero, complejo, cadenas de caracteres, etc.
• PYTHON ve a las variables como objetos, y cuando le asignamos un nombre a una variable
es algo así como asignarle una etiqueta que apuntará a una dirección de memoria donde
se encuentra almacenado el objeto.
• Cuando cambiamos el valor de dicha variable lo que hacemos es que la etiqueta apunte a
otra dirección de memoria de dicho objeto.
• Cuando varias variables tienen asignado el mismo valor la etiqueta en realidad apuntará a
la misma dirección de memoria.
• Como vemos en el código a continuación, inicializamos tres variables a, b y c, y con la
función id() extraemos la ubicación en memoria de cada una.
• Observamos cómo al realizar la
operación de asignación, las variables b y
c terminan apuntando a la primera, a:
Tipos de datos
A continuación mostramos todos los tipos de datos disponibles en el lenguaje Python:
TIPO CLASE N OTA S EJEMPLO
str Cadena Inmutable `Cadena´
unicode Cadena Versión Unicode de str u`Cadena´
list Secuencia Mutable, puede contener objetos de diversos tipos [4.0, `Cadena´, True]
tuple Secuencia Inmutable, puede contener objetos de diversos tipos [4.0, `Cadena´, True]
set Conjunto Mutable, sin orden, no contiene duplicados Set ([4.0, `Cadena´, True])
frozenset Conjunto Inmutable, sin orden, no contiene duplicados Frozenset ([4.0, `Cadena´, True])
dict Mapping Grupo de pares clave: valor {`keyl´:1.0,`key´:False}
int Número entero Precisión fija, convertido en long en caso de overflow 42
long Número entero Precisión arbitraria 42L ó 4569997861519887643l
float Número decimal Coma flotante de doble precisión 3.1415927
bool Booleano Valor booleano verdadero o falso True o False
Aunque no es necesario declarar el tipo de variable, Python si reconoce automáticamente qué tipo de
variable es. También podemos operar números complejos y números enteros, o en coma flotante, sin
ningún problema.
Sin embargo, no podemos hacer cosas como, por ejemplo, operar cadenas 'string' con números:
O b te n e r e l t i p o d e va r i a b l e
Con la función type() podemos saber cuál es el tipo de objeto de la variable.
este caso es un número complejo.
C o nve rs a c i o n e s
Aquí otro ejemplo de cómo Python preserva el tipo de las variables al operar con ellas:
C o l e c c i o n e s d e t i p o s d e d ato s
1
2
3
Diccionarios
O b te n e r e l ca rá c te r d e u n a ca d e n a
O p e ra c i o n e s a r i t m ét i ca s
O p e ra c i o n e s l ó g i ca s
1
2
O p e ra d o r d e P e r t e n e n c i a “ i n ”
Condicional “if ”
Bucle
“for ”
Bucle “for ”
Bucle “for ”
Funciones
Antes de Realizar el próximo ejercicio cree dos archivos: uno que se llame “FuncionesExternas.py” y
otro que se llame “EjecucionDeFunciones.py”, que estén en la misma carpeta.
FuncionesExternas.py”
EjecucionDeFunciones.py
En “FuncionesExternas.py” escriba el siguiente código y guarde el archivo:
En “EjecucionDeFunciones.py” escribe el siguiente
código, guarde el archivo y luego ejecútalo:
Otra forma de llamar funciones:
Si el archivo que queremos importar NO esta en la misma carpeta, ni
en Python usamos 'sys.path.append(“.../Direccion donde esta el
archivo que necesitamos”)' para poder usar 'scripts' en otras
ubicaciones:
Manejo de
ARCHIVOS
Contenido del archivo:
Archivo serializado:
Escribir tablas en
Programación orientada a
OBJETOS
1
¿ Q U E E S U N OBJETO?
Son entidades (cosas, personas, animales, etc...) a las cuales se le atribuyen las
siguientes propiedades:
Estado/Atributo: Son datos o valores que describen el objeto (Longitud,
color, material...)
Comportamiento: Más conocidos como métodos, es lo que podemos
hacer con el objeto como por ejemplo abrir una caja, encender un televisor,
etc...
Identidad: Es lo que diferencia a un objeto de OTROS objetos de su misma
CLASE.
2 ¿ C Ó M O D E F I N I M O S U N O B J E TO Y Q U E E S
E N TO N C E S L A P R O G R A M AC I Ó N O R I E N TA DA A
O B J E TO S ?
En la mayoría de lenguajes de programación como Python los objetos
los declararemos por medio de las CLASES las cuales agruparan las
propiedades anteriormente enunciadas (Estado, comportamiento e
identidad).
De esta forma definiremos la programación orientada a objetos puede
definirse como: el desarrollo de aplicaciones informáticas a partir de
estos objetos y sus interacciónes.
3 CO N C E P TO S F U N DA M E N TA L E S
Clase: Contiene los atributos y métodos de todos los objetos, la
instanciación es el procedimiento mediante el cual creamos un objeto en
particular de una determinada clase.
Herencia: Propiedad mediante la cual se transfieren o comparten
propiedades de objetos de una clase (padre) a otra (hija) .
Objeto: Instancia de una clase.
Metodo: Es un comportamiento asociado a un objeto el cual se
ejecutara al recibir un mensaje.
4 P R O P I E DA D E S F U N DA M E N TA L E S
Abstracción: Es el aislamiento de una entidad de tal forma que no nos
preocupemos en el 'como lo hace', algo así como encerrarlo en una caja
negra.
Encapsulamiento: Es el ocultamiento de los datos de tal forma que estos solo
puedan ser accedidos por los métodos del objeto.
Modularidad: Permite dividir la aplicación en partes más pequeñas las cuales
pueden funcionar de forma independiente.
Principio de ocultación: NO confundir con abstracción o encapsulamiento,
consiste en aislar al objeto del exterior y hacen accesible los atributos solo por
medio de una determinada interfaz.
Polimorfismo: Es la capacidad de usar objetos de diferente clase por medio
de una misma interfaz por ejemplo obtener el perímetro de un triangulo y/o
un rectángulo.
Herencia: Propiedad mediante la cual se transfieren o comparten
propiedades de objetos de una clase (padre) a otra (hija) .
Recolección de basura: es la técnica por la cual el entorno de objetos se
encarga de destruir automáticamente, y por tanto desvincular la memoria
asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
Ejercicio
Antes de Realizar el próximo ejercicio crea dos archivos, uno
que se llame “Classes.py” y otro que se llame “main.py”, que
estén en LA MISMA CARPETA.
En “Classes.py” escriba el siguiente código y guarde el archivo:
En “main.py” escriba el siguiente código y guarde el archivo, luego ejecute el programa:
Programación orientada a objetos
(Herencia)
hemos
terminado
¡EXCELENTE TRABAJO!