Python para Ciencias de la Tierra

Capítulo 1: Descubriendo Python

Damian
10 min readFeb 22, 2022

--

Índice del curso
<<
Capítulo 0: Python en las Ciencias de la Tierra

1.1 Una Introducción sobre Python

Existen diversos lenguajes de programación, los más utilizados son los llamados de alto nivel, los cuales básicamente permiten la comunicación mediante la traducción del lenguaje humano al lenguaje máquina (ceros y unos) y viceversa. La forma en que estos lenguajes hacen esa traducción permite distinguir dos categorías: los lenguajes compiladores y los lenguajes intérpretes.

Python es un lenguaje intérprete, como R, Matlab, Java y Ruby; mientras que lenguajes como Fortran y C son ejemplos clásicos de lenguajes compiladores. ¿Cuál es la diferencia? En esencia los intérpretes leen y analizan el código línea por línea y de forma simultánea pueden generar una respuesta por cada línea ejecutada. En cambio los compiladores leen y analizan toda una secuencia de líneas, llamada script, a este proceso se le llama compilación. Compilado el código, crean un archivo para la ejecución de la tarea programada.

De forma resumida se muestra en la tabla 1.1 las diferencias entre intérpretes y compiladores.

Tabla 1.1 Diferencias entre lenguajes intérpretes y lenguajes compiladores

Una de las principales características que nos puede llamar la atención es el hecho que los intérpretes como Python, son lentos a la hora de ejecutarse. Sin embargo, la diferencia del tiempo de ejecución en varios de los programas de este curso, y también en el día a día de muchos programadores, no es un tema de preocupación, por ser mínima. Se vuelve significante cuando se manipula data matricial como imágenes o modelos 3-D, pero la eficiencia de Python puede mejorar mucho con las paqueterías adecuadas para manipular esa data, paqueterías comúnmente programadas en C y en Fortran.

Ya sabemos qué clase de lenguaje es Python, por lo que ahora podemos hablar de sus características, donde se pueden encontrar ciertas ventajas.

  • Interprete: Como se ha mencionado, no es necesario compilar el código, por lo que facilita el avance del programa al tener respuestas inmediatas en cada línea escrita.
  • De alto nivel: De nuevo, la traducción que implementa Python permite trabajar al programador en una gran variedad de funciones multipropósito sin tener que preocuparse en el sistema de la computadora más que en la lógica de su código.
  • Multiplataforma: Esto quiere decir que el código escrito en Python en un sistema operativo Windows, puede ejecutarse sin ningún problema en una distribución de Linux. En general Python ha sido desarrollado para la mayoría de los sistemas operativos, salvo contadas excepciones al trabajar con el sistema de archivos, por ejemplo.
  • Código abierto: Es distribuido gratuitamente, aún si su uso es con fines comerciales. Cualquier programador puede modificar su código fuente, dando como resultado una gran comunidad que constantemente mejora y modifica las funcionalidades de Python y sus paqueterías, las cuales crecen en cantidad conforme avanza el tiempo.
  • Soporta Programación Orientada a Objetos: Permite programar con este paradigma, el cual se enfoca en declarar objetos que simulen un objeto físico real.
  • Sintaxis intuitiva: Muchas de las sentencias, métodos y atributos se utilizan de forma intuitiva, al ser literalmente palabras en inglés las que definen la acción que se desea. Por ejemplo, si se desea renombrar una columna en una tabla, sólo basta con utilizar el método rename para hacerlo.
  • Tipado dinámico: Permite la libre definición de una variable. Es decir, evita al programador preocuparse por definir si es un entero y de cuántos bits, sólo se asigna y Python determina el tipo de variable.

Gracias a estas características es que Python es fácil de aprender, por lo que ahora podemos entender el porqué de su popularidad. Si bien es cierto que convertirse en un experto en el lenguaje puede tomar tiempo, iniciarse en la programación con este lenguaje facilita mucho el entendimiento de cómo escribir código, y en general permite a la gente ajena al tema, perder el miedo para programar.

Cabe mencionar que Python tiene una filosofía basada en siempre tener buenas prácticas de programación. A esto se le conoce como el Zen de Python, el cual es una lista de 19 normas inicialmente pensadas para los aprendices de Python. Pero en realidad estos consejos deberían ser considerados por cualquier programador, sea de Python o no.

El Zen de Python
1- Bonito es mejor que feo.
2- Explícito es mejor que implícito.
3- Simple es mejor que complejo.
4- Complejo es mejor que complicado.
5- Plano es mejor que anidado.
6- Espaciado es mejor que denso.
7- La legibilidad es importante.
8- Los casos especiales no son lo suficientemente especiales como para romper las reglas.
9- Sin embargo, la practicidad le gana a la pureza.
10- Los errores nunca deberían pasar silenciosamente.
11- A menos que se silencien explícitamente.
12- Frente a la ambigüedad, evitar la tentación de adivinar.
13- Debería haber una, y preferiblemente sólo una, manera obvia de hacerlo.
14- A pesar de que eso no sea obvio al principio, a menos que seas Holandés.
15- “Ahora” es mejor que nunca.
16- A pesar de que nunca es muchas veces mejor que “ahora mismo”.
17- Si la implementación es difícil de explicar, es una mala idea.
18- Si la implementación es fácil de explicar, es una buena idea.
19- Los nombres espaciados son una gran idea, ¡tengamos más de esos!

Esta lista se puede consultar en la página oficial de Python como en la terminal de comandos de Python. Por ahora no está de más que leas las normas, de cualquier forma más adelante conforme avances en tu formación, las citaremos ocasionalmente.

1.2 El Kit de Herramientas Anaconda

Hay varias opciones para instalar Python en nuestra computadora. La forma más intuitiva de hacerlo es mediante su página oficial, pero esta forma sólo se puede trabajar en la terminal del sistema, lugar muy temido por muchos. Además, se necesitarían instalar muchas paqueterías básicas por separado. Eso es una forma más recomendable para alguien que se dedica a la programación, sin embargo para alguien que desea sólo complementar su carrera profesional con Python, te recomiendo instalar el programa Anaconda.

Anaconda

El programa Anaconda posee una serie de herramientas informáticas diseñadas para la programación científica. Anaconda ha sido diseñado para los lenguajes R y Python, y para ser utilizado por Científicos y Analistas de Datos, sin embargo es bastante útil para otras áreas, ya que soporta diversas paqueterías especializadas como las que se utilizarán en el curso. Además es gratuito y permite iniciarte inmediatamente en la programación en Python, al tener diversas paqueterías, las más útiles para iniciar, ya instaladas. Anaconda se utilizará en todo el curso.

Para descargar e instalar Anaconda, sólo debes ingresar a este enlace: https://www.anaconda.com/products/individual. Elige el sistema operativo de tu equipo y descarga. Si eres usuario de Windows, al ejecutar el archivo .exe que se descargó, se mostrarán los cuadros de diálogo como los de la figura 1.1, o muy similares. La instalación es intuitiva. Así es, todo se reduce a ‘I agree’, ‘Next’, ‘Next’, ‘Install’, ‘Finish’. Y seguir las recomendaciones de la instalación, como no habilitar “Add Anaconda3 to MY PATH…” (cuadro 5 de la figura 1.1).

Figura 1.1 Diagrama del orden de los cuadros de diálogos que se muestran durante la instalación de Anaconda en Windows 10.

Al instalarse, podrás acceder a Anaconda desde el botón de inicio, o su equivalente. Verás una carpeta, la cual al expandirla mostrará una serie de programas, algunos de los cuales comentaremos más adelante. Selecciona Anaconda Navigator, el cual, dependiendo las capacidades de tu equipo, puede tardar varios segundos. Mientras carga verás el logo circular verde de Anaconda al centro de tu pantalla. Por momentos puede que se abran algunas terminales de comandos, pero es parte de la carga, así que no te asustes. La ventana inicial de Anaconda es como se muestra en siguiente figura 1.2.

Figura 1.2 Vista inicial de Anaconda Navigator.

Cada cuadro es un programa que puede abrirse o instalarse, según la leyenda de su recuadro azul o verde inferior. Anaconda será utilizado básicamente para abrir el Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) Jupyter Notebook, por lo que no es necesario conocerlo a fondo, excepto por un avanzado pero importante concepto: ambiente, o por su término en inglés, environment.

Antes de explicar lo que es ambiente, es necesario navegar por la interfaz de Anaconda. Identifica que al costado izquierdo de la pantalla hay cuatro apartados: Home, donde estás al iniciar, Environments, Learning y Community. Y en la parte superior de los programas se lee ‘Applications on’ seguido de un recuadro: ‘base (root)’. Si despliegas ese recuadro, verás que sólo aparece el base (root), porque es el único ambiente por defecto con el que se instala Anaconda Navigator.

Si das clic en environments al costado izquierdo se muestra una nueva interfaz (figura 1.3). Observa una nueva columna vacía excepto por leerse base (root) como único ambiente. El cuadro de mayor extensión es donde está todas las paqueterías instaladas en ese ambiente. En la fila superior está la opción de mostrar las paqueterías instaladas, no instaladas o todas, y también hay un cuadro de búsqueda.

Figura 1.3 Vista del apartado de Ambientes de Anaconda.

Con este vistazo, puedes darte una idea de que, si creas otro ambiente, ese nuevo ambiente tendrá sus propias paqueterías, algunas de las cuales base (root) no tendrá instaladas. Así es, cada ambiente tiene sus propios paquetes instalados. ¿Y por qué? Porque existen paqueterías que sólo trabajan con una versión de Python, por ejemplo, Python 2.7, o no trabajan con Python 3. Por ello es necesario crear un ambiente donde Python 2.7 sea el lenguaje de programación por defecto, y así se evitan problemas de compatibilidad. También es muy útil para organizar proyectos que requieran ciertas paqueterías, o incluso probar paqueterías sin afectar a las que ya tenías instaladas.

Para concluir esta sección, decimos que un ambiente es un lugar de trabajo de Anaconda en el que se pueden instalar diversas versiones de un mismo lenguaje o paqueterías, sin afectar paqueterías previamente instaladas en otros ambientes, es decir, los ambientes son independientes.

Jupyter Notebook

Un IDE es un software que posee utilidades y facilidades para el desarrollo principalmente de código, y puede admitir uno o diversos lenguajes. Jupiter Notebook es un IDE diseñado para, entre otros lenguajes, Python. Puedes acceder a él desde Anaconda o desde tu menú de inicio, de la carpeta creada por Anaconda. Al abrirlo se mostrará una terminal negra, la cual no usarás pero tampoco debes cerrar mientras trabajas en Jupyter Notebook.

Es un IDE gratuito que permite programar de una forma muy dinámica. Es decir, además de poder escribir código, el programador puede escribir textos con ecuaciones que apoyen y documenten el código. También permite imprimir visualizaciones de cada línea de código que lo requiera, esto gracias a que Python es intérprete (figura 1.4). De ahí el nombre de notebook, ya que justo permite escribir el código y el texto como si te tratase de una hoja con diversos renglones, los cuales son llamados celdas (figura 1.4).

Figura 1.4 Izquierda: Vista de las celdas en la interfaz de Jupyter. El programa inicia con una, y el usuario agrega las demás. Derecha: Ejemplo de la combinación de texto, ecuaciones, código y visualización de datos dentro de un cuaderno. En una celda puede haber desde una línea de código, hasta todo un script.

Posee una interfaz basada en la web. Esto quiere decir que al abrir el programa se abre una pestaña del explorador de internet predeterminado. Pero sólo es la interfaz, ya que no requiere de internet para funcionar. Inicia en tu explorador de archivos, donde puedes entrar en una carpeta, la cual será donde trabajarás. El botón New te permite crear una nueva carpeta o un nuevo proyecto de Python 3 (figura 1.5)

Figura 1.5 Vista de Jupyter Notebook antes de abrir un nuevo proyecto de Python. Al crearlo se abre una nueva pestaña donde se escribirá el programa, en una interfaz como la vista más arriba.

Existe otro IDE también parte del proyecto Jupyter, pero llamado JupyterLab, el cual tiene básicamente las mismas funcionalidades que ahora nos interesan, pero el principal cambio es la interfaz. Jupyter Notebook abre una nueva pestaña en el explorador cada que se abre o crea un nuevo programa. Jupyterlab en cambio muestra en una misma pestaña el explorador de archivos con los cuadernos donde se programa.

Como Jupyter Notebook será la IDE utilizada en el curso, a partir de ahora me referiré a él sólo como Jupyter.

Spyder

Ahora menciono un IDE diseñado, digamos, al estilo clásico, pero igual de poderoso.

Spyder es otro programa que reconoce muchos lenguajes de programación, tanto interpretados como compiladores. Pero a pesar de admitir lenguajes intérpretes como Python, requiere de todas las líneas del código para mostrar un resultado producto de todo un script. Me refiero a él como clásico porque exige al programador un conocimiento mayor de programación, quien debe diseñar al menos un pseudocódigo antes de escribirlo en el editor, conociendo muy bien los comandos del lenguaje, siendo más complicado para gente recién iniciada en Python. Su interfaz es muy diferente a Jupyter (figura 1.6).

Figura 1.6 Vista del ambiente de desarrollo Spyder. En la Consola Interactiva se puede ejecutar una línea de código de Python, pero es en el Editor donde se escribe el código completo para generar un resultado, o variables que pueden verse en el recuadro superior derecho.

A pesar de que básicamente no se usará en el curso, menciono a Spyder porque es importante aclarar que los archivos que lee son diferentes a los que lee Jupyter.

Spyder genera y lee archivos .py, los cuales son de texto plano donde se aloja el código. Pueden abrirse en un editor de texto, y en cualquier otro IDE que reconozca el lenguaje. En cambio Jupyter genera un archivo con extensión .ipynb, el cual no puede abrirse en varios IDE’s ni en lectores de texto como el bloc de notas, limitando un poco su portabilidad. Más adelante veremos cómo afrontar esto.

Al término de esta sesión ya cuentas con Anaconda instalado en tu equipo, así como haber abierto Jupyter Notebook y Spyder para reconocer su interfaz.

En la siguiente sesión empezaremos con ejemplos y ejercicios simples que te permitirán manipular variables en Python, todo mediante el IDE Jupyter Notebook. ¡Harás tus primeros programas!

Siguiente sesión
>>
Capítulo 2: Conceptos Básicos de Programación (Pt. 1)

Índice del curso

--

--

Damian

Anything I want and is related to data. Learning to become a Data Professional.