2. TEORIA
Jhonny David Jarama
Trapiello
Director del área de desarrollo
Web
(WebMaster)
Ing. de software con I.A. (Senati)
Ciencias Físicas (UNMSM)
Asistente de carga de contenidos y SKU
(Silabuz & Yape)
Director de Tecnología(WebSumaq)
3. CIENCIA DE DATOS
La ciencia de datos es un campo
interdisciplinario que utiliza métodos
científicos, procesos, algoritmos y sistemas
para extraer conocimiento y percepciones
de datos estructurados y no estructurados.
Son algoritmos y sistemas que intentan
simular la inteligencia humana para realizar
tareas específicas. Estos modelos pueden
variar desde simples reglas de decisión
hasta redes neuronales profundas
complejas.
LOS MODELOS DE IA
4. EJEMPLOS COMUNES DE MODELOS DE IA EN
CIENCIA DE DATOS
En el contexto de la ciencia de datos, los modelos de IA se utilizan para analizar datos,
realizar predicciones, clasificar información, optimizar procesos y automatizar tareas.
Regresión: Se utiliza para predecir valores numéricos basados en variables de entrada.
1.
Clasificación: Se utiliza para asignar una etiqueta o categoría a una entrada según características
específicas.
2.
Agrupamiento: Se utiliza para encontrar patrones y estructuras inherentes en los datos agrupando
observaciones similares.
3.
Redes Neuronales: Modelos inspirados en la estructura y función del cerebro humano, utilizados en
tareas de aprendizaje profundo para reconocimiento de imágenes, procesamiento de texto, etc.
4.
Procesamiento del Lenguaje Natural (NLP): Se utiliza para comprender y generar lenguaje humano, lo
que incluye tareas como análisis de sentimientos, traducción automática, resumen de texto, entre otros.
5.
5. Python es un lenguaje de programación de alto nivel,
interpretado, interactivo y orientado a objetos. Fue creado a
finales de los años 80 por Guido van Rossum y ha
experimentado un crecimiento significativo en popularidad
desde entonces, convirtiéndose en uno de los lenguajes de
programación más utilizados en el mundo.
¿QUÉ ES PYTHON?
6. Fácil de aprender y leer: Python se destaca por su sintaxis simple y legible, su diseño
favorece la legibilidad del código, lo que facilita el mantenimiento y la colaboración en
proyectos.
1.
Multiparadigma: Python es un lenguaje de programación multiparadigma, lo que significa
que admite diferentes estilos de programación, incluyendo programación imperativa,
orientada a objetos y funcional.
2.
Interpretado e interactivo: Python es un lenguaje interpretado, lo que significa que el
código se ejecuta línea por línea por un intérprete, en lugar de ser compilado en código de
máquina.
3.
Gran comunidad y ecosistema: Python cuenta con una gran comunidad de desarrolladores
que contribuyen activamente con bibliotecas, frameworks y herramientas que amplían su
funcionalidad.
4.
Portabilidad: Python es un lenguaje multiplataforma, lo que significa que se puede ejecutar
en una variedad de sistemas operativos, incluyendo Windows, macOS y Linux.
5.
CARACTERÍSTICAS PRINCIPALES DE PYTHON:
8. Python es un lenguaje de programación de alto nivel que se
caracteriza por su sintaxis clara y legible.
La indentación (espacios en blanco al principio de una línea)
es crucial en Python y se utiliza para delimitar bloques de
código en lugar de llaves o palabras clave como en otros
lenguajes.
Los comentarios se realizan utilizando el símbolo "#" y se
utilizan para hacer anotaciones en el código que no se
SINTAXIS BÁSICA:
9. # Este es un comentario en Python
# Este es un ejemplo de una declaración simple en Python
print("¡Hola, mundo!")
EJECUTAR
10. En Python, las variables se pueden crear simplemente
asignándoles un valor con el operador "=".
No es necesario declarar el tipo de variable antes de usarla, ya
que Python es un lenguaje de tipado dinámico.
VARIABLES:
11. # Declaración de variables
x = 10
y = "Hola"
# Impresión de variables
print(x) # Output: 10
print(y) # Output: Hola
EJECUTAR
12. Python tiene varios tipos de datos integrados,
incluyendo enteros (int), flotantes (float),
cadenas (str), listas (list), tuplas (tuple),
diccionarios (dict), conjuntos (set), entre otros.
Puedes usar la función type() para averiguar el
tipo de datos de una variable.
TIPOS DE DATOS:
15. Python admite varios tipos de operadores,
como aritméticos, de asignación, de
comparación, lógicos, entre otros.
OPERADORES:
16. # Operadores aritméticos
a = 10
b = 5
print(a + b) # Suma: Output: 15
print(a - b) # Resta: Output: 5
print(a * b) # Multiplicación: Output: 50
print(a / b) # División: Output: 2.0 (en Python 3.x, devuelve un flotante)
print(a // b) # División entera: Output: 2
print(a % b) # Módulo: Output: 0
EJECUTAR
17. # Operadores de asignación
x = 5
x += 2 # Equivalente a x = x + 2
print(x) # Output: 7
# Operadores de comparación
print(a == b) # Igual a: Output: False
print(a != b) # No igual a: Output: True
print(a > b) # Mayor que: Output: True
print(a < b) # Menor que: Output: False
print(a >= b) # Mayor o igual que: Output: True
print(a <= b) # Menor o igual que: Output: False
EJECUTAR
18. # Operadores lógicos
p = True
q = False
print(p and q) # AND lógico: Output: False
print(p or q) # OR lógico: Output: True
print(not p) # NOT lógico: Output: False
EJECUTAR
19. 1.Calcular el área de un triángulo utilizando la fórmula:
área = (base * altura).
2. Solicita al usuario que ingrese la base y la altura del
triángulo, y luego muestra el área calculada.
EJERCICIO 01
20. Calcular la velocidad de escape necesaria para que un objeto abandone la atmósfera
terrestre. La velocidad de escape se calcula utilizando la fórmula:
Donde:
v es la velocidad de escape en metros por segundo (m/s).
G es la constante gravitacional universal, con un valor de
6.67430×10−116.67430×10−11 m³/(kg·s²).
M es la masa de la Tierra, con un valor aproximado de 5.972×10245.972×1024 kg.
r es el radio de la Tierra en metros, con un valor aproximado de 6.371×1066.371×106
m.
EJERCICIO 02
21. Es una estructura de datos inmutable que puede contener una secuencia ordenada de
elementos. A diferencia de las listas, las tuplas no pueden ser modificadas una vez que
han sido creadas, lo que significa que no se pueden agregar, eliminar o modificar
elementos después de la creación de la tupla.
TUPLAS
22. CREACIÓN DE TUPLAS:
# Creación de una tupla vacía
tupla_vacia = ()
# Creación de una tupla con elementos
mi_tupla = (1, 2, 3, 4, 5)
# Creación de una tupla con diferentes tipos de datos
tupla_mixta = (1, "Hola", 3.14, True)
# También se pueden crear sin paréntesis
tupla_sin_parentesis = 1, 2, 3
23. FUNCIONES DE TUPLAS:
mi_tupla = (1, 2, 3, 4, 5)
print(len(mi_tupla)) # Output: 5
len(): Devuelve la longitud (número de elementos) de una tupla.
index(): Devuelve el índice de la primera aparición de un elemento en la tupla.
count(): Devuelve el número de veces que un elemento aparece en la tupla.
mi_tupla = (1, 2, 3, 4, 5)
print(mi_tupla.index(3)) # Output: 2 (índice de la primera aparición del número 3)
mi_tupla = (1, 2, 3, 4, 2, 5, 2)
print(mi_tupla.count(2)) # Output: 3 (el número 2 aparece tres veces en la tupla)
24. FUNCIONES DE TUPLAS:
tupla1 = (1, 2, 3)
tupla2 = (4, 5, 6)
tupla_concatenada = tupla1 + tupla2
print(tupla_concatenada) # Output: (1, 2, 3, 4, 5, 6)
Concatenación de tuplas: Se pueden concatenar dos tuplas usando el operador "+".
Repetición de elementos: Se pueden repetir los elementos de una tupla utilizando el
operador "*".
tupla_original = (1, 2, 3)
tupla_repetida = tupla_original * 3
print(tupla_repetida) # Output: (1, 2, 3, 1, 2, 3, 1, 2, 3)
25. Es una estructura de datos mutable que puede contener una colección ordenada de
elementos. A diferencia de las tuplas, las listas pueden ser modificadas después de su
creación, lo que significa que se pueden agregar, eliminar o modificar elementos.
LISTAS
26. CREACIÓN DE LISTAS:
# Creación de una lista vacía
lista_vacia = []
# Creación de una lista con elementos
mi_lista = [1, 2, 3, 4, 5]
# Creación de una lista con diferentes tipos de datos
lista_mixta = [1, "Hola", 3.14, True]
# También se pueden crear utilizando la función list()
otra_lista = list(range(1, 6)) # Crea una lista con números del 1 al 5
27. FUNCIONES DE LISTAS:
mi_lista = [1, 2, 3, 4, 5]
print(len(mi_lista)) # Output: 5
len(): Devuelve la longitud (número de elementos) de una lista.
append(): Agrega un elemento al final de la lista.
insert(): Inserta un elemento en una posición específica de la lista.
mi_lista = [1, 2, 3]
mi_lista.append(4)
print(mi_lista) # Output: [1, 2, 3, 4]
mi_lista = [1, 2, 4, 5]
mi_lista.insert(2, 3) # Inserta el número 3 en la posición 2
print(mi_lista) # Output: [1, 2, 3, 4, 5]
28. FUNCIONES DE LISTAS:
mi_lista = [1, 2, 3, 4, 3]
mi_lista.remove(3) # Elimina la primera aparición del número 3
print(mi_lista) # Output: [1, 2, 4, 3]
remove(): Elimina la primera aparición de un elemento en la lista.
pop(): Elimina y devuelve el elemento en una posición específica de la lista.
Si no se proporciona un índice, elimina y devuelve el último elemento.
mi_lista = [1, 2, 3, 4, 5]
elemento_eliminado = mi_lista.pop(2) # Elimina el elemento en la posición 2
(índice 2)
print(elemento_eliminado) # Output: 3
print(mi_lista) # Output: [1, 2, 4, 5]
29. FUNCIONES DE LISTAS:
mi_lista = [1, 2, 3, 4, 5]
print(mi_lista.index(3)) # Output: 2 (índice de la primera aparición del número 3)
index(): Devuelve el índice de la primera aparición de un elemento en la lista.
count(): Devuelve el número de veces que un elemento aparece en la lista.
reverse(): Invierte el orden de los elementos en la lista.
mi_lista = [1, 2, 3, 4, 3]
print(mi_lista.count(3)) # Output: 2 (el número 3 aparece dos veces en la lista)
mi_lista = [1, 2, 3, 4, 5]
mi_lista.reverse()
print(mi_lista) # Output: [5, 4, 3, 2, 1]
30. FUNCIONES DE LISTAS:
mi_lista = [3, 1, 4, 1, 5, 9, 2, 6, 5]
mi_lista.sort()
print(mi_lista) # Output: [1, 1, 2, 3, 4, 5, 5, 6, 9]
sort(): Ordena los elementos de la lista en su lugar.
Las listas son una de las estructuras de datos más versátiles en Python y ofrecen una
amplia gama de funcionalidades que las hacen extremadamente útiles en muchos
escenarios de programación.
31. Es una estructura de datos que permite almacenar pares clave-valor de manera
desordenada. Cada elemento en un diccionario consiste en una clave única y su
correspondiente valor asociado. Los diccionarios son muy útiles cuando necesitas
almacenar y acceder a datos de manera eficiente mediante una clave, en lugar de un
índice numérico como en las listas.
DICCIONARIO
32. CREACIÓN DE DICCIONARIOS:
# Creación de un diccionario vacío
diccionario_vacio = {}
# Creación de un diccionario con elementos
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
# También se pueden crear utilizando la función dict()
otro_diccionario = dict(nombre="María", edad=25, ciudad="Barcelona")
33. FUNCIONES DE DICCIONARIOS:
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
print(len(mi_diccionario)) # Output: 3
len(): Devuelve la cantidad de pares clave-valor en el diccionario.
keys(): Devuelve una vista de todas las claves en el diccionario.
values(): Devuelve una vista de todos los valores en el diccionario.
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
print(mi_diccionario.keys()) # Output: dict_keys(['nombre', 'edad', 'ciudad'])
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
print(mi_diccionario.values()) # Output: dict_values(['Juan', 30, 'Madrid'])
34. FUNCIONES DE DICCIONARIOS:
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
print(mi_diccionario.items())
# Output: dict_items([('nombre', 'Juan'), ('edad', 30), ('ciudad', 'Madrid')])
items(): Devuelve una vista de todos los pares clave-valor en el diccionario como tuplas.
get(): Devuelve el valor asociado con una clave específica.
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
print(mi_diccionario.get("nombre")) # Output: Juan
print(mi_diccionario.get("altura", "No se encontró la altura"))
# Output: No se encontró la altura
35. FUNCIONES DE DICCIONARIOS:
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
edad = mi_diccionario.pop("edad")
print(edad) # Output: 30
print(mi_diccionario) # Output: {'nombre': 'Juan', 'ciudad': 'Madrid'}
pop(): Elimina y devuelve el valor asociado con una clave específica.
popitem(): Elimina y devuelve el último par clave-valor insertado en el diccionario.
mi_diccionario = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
clave, valor = mi_diccionario.popitem()
print(clave, valor) # Output: ciudad Madrid
print(mi_diccionario) # Output: {'nombre': 'Juan', 'edad': 30}
36. FUNCIONES DE DICCIONARIOS:
mi_diccionario = {"nombre": "Juan", "edad": 30}
mi_diccionario.update(ciudad="Madrid")
print(mi_diccionario) # Output: {'nombre': 'Juan', 'edad': 30, 'ciudad': 'Madrid'}
update(): Actualiza el diccionario con elementos de otro diccionario o iterables de pares
clave-valor.
Los diccionarios son una herramienta poderosa en Python para almacenar y manipular
datos de manera eficiente. Son muy versátiles y se utilizan en una variedad de escenarios
de programación para mapear claves a valores.
37. Un astrónomo aficionado está observando el cielo nocturno y quiere llevar un
registro de las constelaciones que ha visto. Crea un programa en Python que
permita al astrónomo agregar nuevas constelaciones a su registro, buscar
información sobre una constelación específica y obtener una lista de todas las
constelaciones registradas.
EJERCICIO 01
38. Un equipo de científicos espaciales está llevando a cabo un proyecto de clasificación
de asteroides. Cada asteroide es descrito por su nombre, su tamaño (en metros) y
su distancia a la Tierra (en kilómetros). Se necesita un programa en Python que
permita agregar nuevos asteroides a la base de datos, buscar información sobre un
asteroide específico y obtener una lista de los nombres de todos los asteroides.
EJERCICIO 02
39. Las estructuras de control en Python incluyen
condicionales lógicos ( if , elif , else ) y bucles (
for , while ). Estas estructuras permiten dirigir el
flujo de ejecución del programa en función de
condiciones específicas o repetir un bloque de
código múltiples veces
ESTRUCTURAS DE CONTROL
40. La estructura if se utiliza para tomar decisiones basadas en condiciones. Si
la condición es verdadera, se ejecuta un bloque de código.
La estructura else se utiliza para ejecutar un bloque de código cuando la
condición if es falsa.
IF, ELSE:
41. # Ejemplo de if-else
x = 10
if x > 5:
print("x es mayor que 5")
else:
print("x no es mayor que 5")
EJECUTAR
42. Los bucles permiten ejecutar un bloque
de código varias veces.
Python admite dos tipos de bucles
principales: el bucle for y el bucle while.
LOOPS (BUCLES):
43. Se utiliza para iterar sobre una objeto iterable y ejecutar un bloque
de código para cada elemento en la secuencia de dicho objeto. Donde:
Elemento es la variable que toma el valor de cada elemento en la
secuencia.
BUCLE FOR:
44. Se utiliza para iterar sobre una secuencia (como una lista, tupla, cadena, o rango).
BUCLE FOR:
# Ejemplo de bucle for
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(fruta)
También se puede usar la función range() para generar una secuencia numérica.
# Ejemplo de uso de range() en un bucle for
for i in range(5): # Genera números del 0 al 4
print(i)
45. Estructura de control de flujo en la
programación que se utiliza para
repetir un bloque de código, mientras
que se cumpla una condición
determinada. En esta estructura, la
condición es una expresión booleana
que se evalúa en cada iteración del
ciclo.
BUCLE WHILE:
46. Se ejecuta mientras una condición
especificada sea verdadera.
Es importante tener en cuenta la
posibilidad de crear bucles infinitos
si la condición nunca se vuelve falsa.
BUCLE WHILE:
# Ejemplo de bucle while
contador = 0
while contador < 5:
print(contador)
contador += 1
47. BUCLE WHILE:
Se puede usar la declaración break para salir del bucle incluso si la
condición aún es verdadera.
# Ejemplo de uso de la declaración break en un bucle
while
contador = 0
while True:
print(contador)
contador += 1
if contador >= 5:
break
48. Un cohete espacial está siendo lanzado desde la Tierra para llevar una sonda a explorar un planeta
distante. Durante la fase de lanzamiento, se deben verificar diferentes parámetros para asegurar un
despegue seguro. Estos parámetros incluyen la presión en los tanques de combustible, la temperatura
del motor y la disponibilidad de energía. Crea un programa en Python que simule estas verificaciones
durante el lanzamiento del cohete.
El programa debe realizar las siguientes acciones:
Solicitar al operador que ingrese la presión en los tanques de combustible (en psi).
Solicitar al operador que ingrese la temperatura del motor (en grados Celsius).
Solicitar al operador que ingrese la disponibilidad de energía (en porcentaje).
Verificar si los parámetros cumplen con los requisitos de seguridad:
La presión en los tanques de combustible debe estar entre 200 y 500 psi.
La temperatura del motor debe ser menor o igual a 100 grados Celsius.
La disponibilidad de energía debe ser mayor o igual al 90%.
Si todos los parámetros cumplen con los requisitos de seguridad, el programa debe imprimir "Despegue
seguro. ¡Buena suerte en la misión!". En caso contrario, debe imprimir un mensaje indicando qué
parámetros no cumplen con los requisitos de seguridad y recomendando acciones correctivas.
EJERCICIO 01
49. Un radar espacial está monitoreando el tráfico de satélites alrededor de la Tierra. Se necesita
un programa en Python que permita al operador ingresar la altitud de los satélites y
determinar si están en una órbita baja, media o alta. El programa debe solicitar al operador
que ingrese la altitud de cada satélite y mostrar la clasificación correspondiente. El proceso
de entrada de datos debe continuar hasta que el operador decida detenerlo.
Las altitudes de los satélites se clasifican de la siguiente manera:
Órbita baja: altitud menor a 2000 kilómetros.
Órbita media: altitud entre 2000 y 35000 kilómetros.
Órbita alta: altitud mayor a 35000 kilómetros.
Después de ingresar la altitud de cada satélite, el programa debe preguntar al operador si
desea ingresar la altitud de otro satélite. Si el operador responde afirmativamente, se le
solicita ingresar la altitud del siguiente satélite. Si responde negativamente, el programa
finaliza.
EJERCICIO 02
50. Se está llevando a cabo una misión de exploración planetaria utilizando una flota de sondas
espaciales. Cada sonda está programada para recopilar datos sobre la superficie del planeta
y enviarlos de vuelta a la Tierra. Se necesita un programa en Python que simule la
transmisión de datos de cada sonda y muestre el progreso de la transmisión para cada una
de ellas.
El programa debe tener en cuenta que la transmisión de datos de cada sonda puede tardar
un tiempo variable, y debe mostrar un mensaje indicando el progreso de la transmisión para
cada sonda. Se proporciona una lista de sondas espaciales y se asume que cada sonda toma
el mismo tiempo para transmitir sus datos.
EJERCICIO 03
TIEMPO_TRANSMISION = 30
51. En una estación de monitoreo espacial, se recopilan datos de diferentes sensores ubicados en varios satélite
Estos datos incluyen mediciones de temperatura, presión, humedad y radiación cósmica. Se necesita u
programa en Python que analice estos datos y detecte anomalías que puedan indicar problemas en los sistema
de los satélites.
El programa debe realizar las siguientes acciones:
Solicitar al usuario que ingrese los datos recopilados por cada sensor para un cierto período de tiempo.
1.
Almacenar los datos en estructuras de datos adecuadas (tuplas, listas, diccionarios) para su posterio
análisis.
2.
Analizar los datos para detectar anomalías utilizando criterios específicos para cada tipo de sensor:
3.
Temperatura: detectar si la temperatura está fuera del rango normal (por ejemplo, -50°C a 50°C).
Presión: detectar si la presión está fuera del rango normal (por ejemplo, 800 hPa a 1200 hPa).
Humedad: detectar si la humedad está fuera del rango normal (por ejemplo, 0% a 100%).
Radiación cósmica: detectar si la radiación cósmica supera un umbral predefinido.
Informar al usuario sobre cualquier anomalía detectada, indicando el tipo de sensor y el valor anómalo.
4.
EJERCICIO 04
RANGO_NORMAL_TEMPERATURA = (-50, 50) # EN GRADOS CELSIUS
RANGO_NORMAL_PRESION = (800, 1200) # EN HPA
RANGO_NORMAL_HUMEDAD = (0, 100) # EN PORCENTAJE
UMBRAL_RADIACION = 100 # UMBRAL DE RADIACIÓN CÓSMICA EN UNIDADES ARBITRARIAS