Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Fundamentos de Programación Científica con Python

Fundamentos de Programación Científica con Python

1. Introducción


Este cuaderno forma parte del libro interactivo Ciencia de Datos Hidrometeorológicos con Python, y está diseñado como una guía práctica para comenzar a programar con Python usando la plataforma JupyterLab. No necesitas experiencia previa en programación—solo curiosidad y ganas de experimentar.

Aprenderás los fundamentos de la programación, estructuras de datos básicas, lógica condicional, funciones y una primera introducción al uso de librerías científicas en Python.

📚 Descripción general

  • Qué es Python y por qué es tan usado en ciencia de datos

  • Los principales tipos de datos en Python

  • Operadores y estructuras básicas de control

  • Cómo escribir funciones propias

  • Una introducción práctica a las clases y objetos

  • Cómo importar librerías científicas populares

✅ Requisitos previos

Conceptos

Importancia

Notas

Introducción a Python

Útil

Información complementaria

⏱️ Tiempo estimado de aprendizaje: 30–45 minutos
✍️ Formato: interactivo, ejecuta y modifica el código a medida que avanzas

2. ¿Qué es Python?


Python es un lenguaje de programación de alto nivel, interpretado y de código abierto. Se caracteriza por su sintaxis clara, su gran comunidad y su amplia adopción en áreas como análisis de datos, inteligencia artificial, climatología y muchas más.

📌 En este libro lo usaremos como base para hacer ciencia de datos con datos hidrometeorológicos reales.

🧠 ¿Qué significa que es de “alto nivel”?

Un lenguaje de alto nivel como Python está diseñado para que las personas lo entiendan y escriban fácilmente. A diferencia de otros lenguajes como C o Fortran, con Python podemos hacer más con menos líneas de código.

Hola, mundo

3. Tipos de datos en Python


🔢 Números enteros (int) y decimales (float)

Los enteros (int) representan números sin parte decimal, mientras que los decimales (float) permiten representar números reales.

a: 10 | tipo: <class 'int'>
pi: 3.1416 | tipo: <class 'float'>

🔤 Cadenas de texto (str)

Las cadenas (str) son secuencias de caracteres encerradas entre comillas simples o dobles. Se usan para representar palabras, frases u otros textos.

Hola, mundo
Nombre: Python
Tipo: <class 'str'>

🔘 Booleanos (bool)

Los booleanos son valores lógicos que solo pueden ser True (verdadero) o False (falso). Se utilizan para hacer comparaciones y estructuras de control.

5 > 3: True
10 == 20: False
Tipo de es_mayor: <class 'bool'>

📦 Listas (list)

Las listas son colecciones ordenadas y modificables. Se definen con corchetes y pueden contener distintos tipos de datos.

Lista: [1, 'texto', 3.14, True]
Primer elemento: 1
Tipo: <class 'list'>
Lista modificada: [1, 'nuevo texto', 3.14, True]

🗂️ Diccionarios (dict)

Un diccionario es una colección no ordenada de pares clave: valor. Se define con llaves {} y permite acceder a cada valor por su clave.

Nombre: Alfonso
Edad: 35
Diccionario completo: {'nombre': 'Alfonso', 'edad': 35, 'ciudad': 'Bogotá'}
Tipo: <class 'dict'>
Actualizado: {'nombre': 'Alfonso', 'edad': 35, 'ciudad': 'Bogotá', 'profesion': 'Científico de datos'}

🧱 Tuplas (tuple)

Las tuplas son similares a las listas, pero no se pueden modificar. Se definen con paréntesis () y son útiles para almacenar datos fijos.

Tupla: (4.61, -74.07)
Latitud: 4.61
Longitud: -74.07
Tipo: <class 'tuple'>
Error: 'tuple' object does not support item assignment

🔘 Conjuntos (set)

Los conjuntos son colecciones no ordenadas que no permiten elementos duplicados. Se definen con set() o llaves {}.

Original: [1, 2, 2, 3, 4, 4, 5]
Set sin duplicados: {1, 2, 3, 4, 5}
Tipo: <class 'set'>
Actualizado: {1, 2, 3, 4, 5, 6}

✏️ Práctica: Crea una lista con los nombres de tres ciudades colombianas y muestra la segunda ciudad usando indexación (mi_lista[1]).

4. ➕ Operadores básicos


Los operadores nos permiten realizar cálculos y comparaciones con datos. Python proporciona operadores aritméticos para matemáticas, operadores de comparación para evaluar condiciones, y más.

Operadores aritméticos

Python permite usar operadores matemáticos básicos:

Suma: 1 + 2 = 3
Resta: 5 - 3 = 2
Multiplicación: 4 * 3 = 12
División: 10 / 2 = 5.0
División entera: 10 // 3 = 3
Potenciación: 2 ** 4 = 16
Módulo (resto): 10 % 3 = 1

5. 🔀 Estructuras de control


Ahora que conoces los operadores, aprendamos cómo tomar decisiones y repetir acciones en nuestro código. Las estructuras de control permiten que los programas sean dinámicos y respondan a diferentes condiciones.

🤔 Condicionales if, elif, else

Las estructuras condicionales permiten ejecutar bloques de código solo si se cumple una condición.

x es positivo

También podemos usarlas para comparar tipos o valores:

Es un valor booleano

🔁 Bucle while

El bucle while repite un bloque de código mientras se cumpla una condición.

Contador: 0
Contador: 1
Contador: 2

🔁 Bucle for

El bucle for se usa para recorrer elementos de una secuencia (como una lista o rango).

Valor de i: 0
Valor de i: 1
Valor de i: 2
Valor de i: 3
Valor de i: 4

También se puede usar con listas directamente:

Hola, Alfonso
Hola, Nicole
Hola, Max

✏️ Desafío: Escribe un bucle for que imprima los números del 1 al 10, pero solo los números pares. Pista: usa el operador módulo % para verificar si un número es par.

6. Funciones en Python


Las funciones son bloques de código reutilizables que se definen una vez y se pueden ejecutar múltiples veces. Son ideales para automatizar tareas repetitivas y organizar mejor tu código.

🔧 ¿Qué es una función?

Una función se define usando la palabra clave def, seguida del nombre de la función, paréntesis con los argumentos, y dos puntos :. El cuerpo de la función va indentado.

Hola, te damos la bienvenida al curso

🧪 Funciones con argumentos

Puedes definir funciones que acepten uno o más parámetros para hacerlas más flexibles.

Hola, Alfonso!
Hola, Nicole!

➕ Funciones con múltiples argumentos

Las funciones pueden aceptar varios argumentos, por ejemplo, para realizar operaciones matemáticas:

Resultado: 8
Resultado: 8

🔁 Funciones que devuelven resultados (return)

Usamos return cuando queremos que la función nos entregue un valor para usarlo más adelante.

Área del triángulo: 7.5

✏️ Ejercicio: Crea una función llamada celsius_a_fahrenheit(celsius) que convierta temperaturas de Celsius a Fahrenheit. Fórmula: F = C × 9/5 + 32. Prueba tu función con 25°C.

7. Clases y objetos en Python


En Python, una clase es como un molde o plantilla para crear objetos. Cada objeto puede tener sus propios atributos (datos) y métodos (funciones asociadas).

Este enfoque se conoce como Programación Orientada a Objetos (POO) y es muy útil para organizar código complejo en estructuras lógicas.

🧱 ¿Qué es una clase?

Vamos a crear una clase llamada Figura que describe un objeto geométrico.

🧪 Crear una clase y usar objetos

Ahora instanciamos un objeto de tipo Figura:

Si queremos representar un cuadrado podemos definirlo de la siguiente manera:

Nombre: Cuadrado
Lados: 4
Color: Rojo

Cada objeto tiene su propio conjunto de atributos.

🛠️ Métodos dentro de una clase

También podemos definir funciones dentro de una clase que realicen acciones con los datos del objeto. A esto se les llama métodos.

Usamos el método:

Triángulo tiene 3 lados y es de color Azul

Esto imprimirá una descripción usando los datos del objeto.

8. Importar librerías en Python


Una librería (o módulo) es una colección de funciones y clases ya escritas que puedes reutilizar en tu código. Usarlas ahorra tiempo y permite hacer cosas complejas fácilmente.

Por ejemplo, existen librerías para matemáticas (numpy), el manejo de datos (pandas), procesamiento de datos climáticos (xarray), visualización (matplotlib), y muchas más.

📦 ¿Cómo se importa una librería?

Usamos la palabra clave import para traer una librería a nuestro entorno de trabajo.

Ahora podemos usar cualquier función dentro de numpy, como:

[1 2 3]

🧩 Usar alias con as

Como algunas librerías tienen nombres largos, se suele usar un alias con la palabra clave as:

Esto nos permite escribir:

[10 20 30]

🧪 Librerías comunes en ciencia de datos

A continuación, presentamos algunas de las librerías más utilizadas en análisis científico y de datos climáticos:

  • numpy → Permite realizar cálculos numéricos y operaciones con arrays de manera eficiente.

  • pandas → Ofrece estructuras de datos tipo tabla (DataFrames) ideales para manipular datos tabulados.

  • xarray → Diseñada para trabajar con datos multidimensionales, como series de tiempo o datos climáticos en grillas.

Estas librerías están optimizadas para el trabajo científico y forman la base de muchas herramientas modernas para la ciencia abierta y la climatología computacional.

Array con numpy: [0 1 2 3 4]

Tabla con pandas:
   nombre  edad
0     Ana    23
1    Luis    34
2  Camila    29

Dataset con xarray:
<xarray.Dataset> Size: 24B
Dimensions:      (x: 3)
Dimensions without coordinates: x
Data variables:
    temperatura  (x) float64 24B 15.1 17.3 16.8

✅ Conclusiones finales

En este capítulo aprendiste los fundamentos esenciales de la programación científica con Python:

  • Los principales tipos de datos (enteros, flotantes, texto, listas, diccionarios, etc.)

  • Cómo utilizar estructuras de control como condicionales y bucles

  • Cómo crear y reutilizar funciones y clases

  • Cómo importar y utilizar librerías externas en tus notebooks

Estas herramientas forman la base para trabajar con datos reales, desarrollar scripts reproducibles y automatizar análisis en ciencia de datos.

🎓 Programar es una habilidad que se fortalece con la práctica. No te preocupes por memorizar todo ahora, ¡vuelve a este capítulo cuando lo necesites!


👉 ¿Qué sigue?

En el próximo cuadernillo exploraremos en mayor profundidad tres de las librerías más utilizadas en ciencia climática:

  • numpy para trabajar con arreglos y álgebra lineal

  • pandas para manipular datos tabulares

  • xarray para manejar datos multidimensionales como los de satélites, modelos climáticos y observaciones atmosféricas

Prepárate para trabajar con datos reales y aprender nuevas herramientas prácticas. ¡Nos vemos allá! 🌎📊

Fuentes y referencias

References
  1. Rose, B., Kent, J., Tyle, K., Clyne, Banihirwe, A., Camron, D., Ford, R., Morley, J., Grover, M., Eroglu, O., Paul, K., May, R., Lkailynncar, Irving, D., Uieda, L., Ojaybee, Blain, P., & Moon, Z. (2023). ProjectPythia/pythia-foundations: v2023.05.01. Zenodo. 10.5281/ZENODO.7884572