Python: El lenguaje de la Ciencia de Datos

Gracias por darme amor compartiendo en tu app favorita:

Empecé aprendiendo BASIC en 1985 con 14 años. Luego me hice un crack del COBOL, ensamblador y PASCAL mientras hacía FPII a finales de esa misma década. Cuando empecé a trabajar en la desaparecida CEINTE me convertí en un monstruo del CLIPPER para pasar en 1998 al HTML, el CSS y PERL, con el que hacía maravillas para muy pronto dejarlo atrás por PHP e incorporar JavaScript.

Todos y cada uno de esos lenguajes han sido revolucionarios, iban a ser el lenguaje definitivo en su ámbito y fueron sustituidos (o serán sustituidos) por otros que se impondrán por su sencillez. Siempre es por la sencillez.

De hecho es posible que todos los lenguajes sean sustituidos por IAs que programen en función de un prompt así que el siguiente nivel va a ser aprender a definir perfectamente una necesidad para que la IA genere una solución programática.

Bien, pues ahora le toca el turno a Python mientras llega ese futurible.

Python es, sin duda, uno de los lenguajes de programación más populares y en auge de la actualidad. Desde su creación en 1991 por Guido van Rossum, ha crecido exponencialmente en popularidad, gracias a su simplicidad, versatilidad y una comunidad activa que sigue impulsando su desarrollo.

En el mundo de la ciencia de datos, Python ha emergido como el lenguaje de referencia, superando a otros lenguajes como R (que sigue dando guerra en el data science), PHP (que sigue siendo el rey en la web pero perdiendo terreno) y PERL (¿alguien lo recuerda?).

Este artículo es un ejercicio de reflexión y resumen del 4º módulo del curso de Ciencia de Datos de IBM que estoy haciendo gracias a FUNDAE. Se presenta como una introducción a Python, mostrando ejemplos básicos, mencionando algunas de las librerías más utilizadas en ciencia de datos y explorando por qué Python ha logrado esta posición dominante, a la vez que PERL ha quedado en el olvido.

(Y menciono PERL porque por alguna extraña razón me recuerda a ese lenguaje más que al PHP.)


La simplicidad de python: un ejemplo básico

Uno de los aspectos más destacados de Python es su sintaxis clara y legible, lo que lo convierte en un lenguaje ideal tanto para principiantes como para expertos. Aunque he de reconocer que mi primer acercamiento fue confuso, no porque no fuera simple sino por los hábitos adquiridos con otros lenguajes, ya que lo que antes se hacía con 10 líneas ahora se hace con 5. Y es una cuestión de sintaxis.

A diferencia de otros lenguajes que requieren una estructura más compleja, Python permite a los programadores expresar conceptos con menos líneas de código.

A continuación, se muestra un ejemplo básico de cómo funciona Python:

Calcular el cuadrado de un número

En este ejemplo, la función calcular_cuadrado toma un número como entrada y devuelve su cuadrado. La simplicidad de este código es una de las razones por las que Python es tan accesible y fácil de aprender.

def calcular_cuadrado(numero):
return numero ** 2

resultado = calcular_cuadrado(4)
print(f"El cuadrado de 4 es {resultado}")

(Aunque tampoco es que podamos afirmar que no hay lenguajes que puedan hacer lo mismo con el mismo número de líneas. Lo de la simplicidad es algo que ves cuando desarrollas objetivos un poco más elaborados.)


Python en la Ciencia de Datos: librerías esenciales

El verdadero poder de Python en la ciencia de datos radica en su extenso ecosistema de librerías. Estas librerías permiten a los científicos de datos realizar análisis complejos, manipulación de datos, visualización y aprendizaje automático de manera eficiente y efectiva.

La verdad es que cuando he empezado a trastear con el lenguaje es aquí donde lo de la palabra simplicidad ha tomado verdadero sentido.

Y por ahora las librerías Pandas están siendo un verdadero juguete. Un lego como los que me encantaba de niño, con el que construir grandes proyectos juntando piezas que resuelven lo esencial para que tú puedas pensar en lo importante.

Pandas: manipulación de datos

Pandas es una de las librerías más populares en la ciencia de datos para la manipulación y análisis de datos. Ofrece estructuras de datos como DataFrame, que permiten manipular datos de manera rápida y eficiente.

Con Pandas, tareas como la limpieza de datos, la transformación y el análisis exploratorio se vuelven sencillas y directas. Y éstas son precisamente funciones esenciales en la metodología de trabajo de un científico de datos en sus primeros pasos.

Un ejemplo básico de cómo se utiliza Pandas es:

import pandas as pd

# Crear un DataFrame

data = {'Nombre': ['Ana', 'Luis', 'María'], 'Edad': [28, 34, 29]}
df = pd.DataFrame(data)

# Mostrar el DataFrame

print(df)

# Filtrar los datos por edad

df_mayores_de_30 = df[df['Edad'] > 30]
print(df_mayores_de_30)

En este ejemplo, Pandas se utiliza para crear un DataFrame, una estructura de datos tabular, y luego filtrar los datos según una condición específica.


Otras librerías esenciales en Ciencia de Datos

Además de Pandas, Python cuenta con una serie de librerías que son fundamentales en el ámbito de la ciencia de datos:

  • NumPy: Esencial para cálculos numéricos y manipulación de matrices. Sobre todo para el trabajo con matrices lo hace todo extremadamente simple a tal punto que sumar un par de ellas solo necesitas hacer A + B, donde cada letra corresponde a una variable que contiene una matriz.
  • Matplotlib y Seaborn: Utilizadas para la visualización de datos. Matplotlib proporciona herramientas para crear gráficos 2D, mientras que Seaborn se construye sobre Matplotlib y facilita la creación de gráficos estadísticos. Es cierto que cuando quieres personalizar un gráfico requieres de conocer los métodos para personalizarlos, pero más allá de eso es la potencia gráfica estadística de un Excel con unas pocas líneas de código.
  • Scikit-learn: Ofrece herramientas para el aprendizaje automático, incluyendo algoritmos para clasificación, regresión y clustering. Esto es llevar la potencial creación de IAs a su nivel de desarrollo más simple.
  • TensorFlow y PyTorch: Son las librerías más populares para la creación y entrenamiento de modelos de aprendizaje profundo. Y suelen estar envueltas en los mismos proyectos que Scikit-learn.

Python vs. PHP y PERL: La victoria del novato

Python ha logrado desbancar a lenguajes como PHP y PERL en varios campos, incluyendo el desarrollo web y la administración de sistemas, y ha dominado en áreas como la ciencia de datos y la inteligencia artificial.

Pero, ¿por qué ha ocurrido esto?

PHP ha sido históricamente un lenguaje dominante en el desarrollo web, especialmente en la creación de sitios web dinámicos (Joomla! antes de su caída a los infiernos y luego durante el reinado de WordPress lo convirtieron en el amo y señor de la web, gracias también a sus parejas de batalla: Apache y MySQL).

Sin embargo, a pesar de su popularidad en la web, PHP no ha logrado penetrar en el mundo de la ciencia de datos de la misma manera que Python. Esto se debe en gran parte a la falta de un ecosistema robusto de librerías para ciencia de datos, así como a su sintaxis que, aunque eficaz para desarrollo web, no es tan intuitiva o flexible como la de Python para tareas científicas.

PERL, por otro lado, fue en su momento el «pegamento de Internet», utilizado extensamente para tareas de administración de sistemas, manipulación de texto y automatización de tareas.

Su flexibilidad y la capacidad para manejar grandes cantidades de datos textuales lo hicieron popular en los primeros días de la web. Eso lo hacía ideal para el scrapping (la lectura masiva de webs y la extracción de datos de las mismas).

Sin embargo, PERL fue perdiendo terreno principalmente debido a su compleja y a menudo confusa sintaxis. (A mí me encantaba, vuelvo a decir, me sentía muy cómodo con él.)

Aunque extremadamente poderoso, PERL era conocido por su dificultad para leer y mantener código, lo que eventualmente llevó a la adopción de Python, que ofrecía una sintaxis mucho más clara y una curva de aprendizaje más suave.

Además, la comunidad de Python comenzó a desarrollar rápidamente librerías para una amplia gama de aplicaciones, desde el desarrollo web hasta la ciencia de datos, haciendo de Python una opción más versátil.

Así que frente a estos competidores, u otros como R -aún con el apoyo de los gigantes como Facebook o Google-, Python ha llegado a dominar la ciencia de datos por varias razones clave:

  • su sintaxis clara y accesible,
  • su extensa colección de librerías
  • y su capacidad para crecer y adaptarse a las necesidades de la comunidad tecnológica.

Mientras que lenguajes como PHP siguen siendo relevantes en el desarrollo web y PERL ha quedado en gran parte en el olvido, Python ha demostrado ser un lenguaje que no solo es fácil de aprender, sino que también es lo suficientemente poderoso para manejar los desafíos más complejos en la ciencia de datos y más allá.

De hecho Python está dando el salto al desarrollo web y promete dar la batalla al boss en ese campo también. Porque como decía al inicio, ningún lenguaje será el rey para siempre. Ni siquiera Python.

Este ascenso no solo ha sido técnico, sino también comunitario. La comunidad de Python es extremadamente activa, al viejo estilo de los inicios de Internet, lo que facilita la creación de nuevas herramientas y la resolución de problemas.

Esto, combinado con el soporte de algunos gigantes tecnológicos, asegura que Python continuará siendo el lenguaje de referencia en la ciencia de datos en los años por venir. Incluso aquellos que apuestan por R eligen Python cuando lo que está por medio es la toma de decisiones a través de un algoritmo. Léase aquí Facebook, Google o NetFlix.

En resumen, Python ha ganado su lugar como el lenguaje de programación preferido en la ciencia de datos no solo por sus capacidades técnicas, sino también por su enfoque accesible y su ecosistema en constante expansión.

Es el lenguaje que, a diferencia de PERL, ha sabido evolucionar con las necesidades de la industria, y que, en comparación con PHP, ha encontrado su verdadero hogar en el análisis de datos, aprendizaje automático e inteligencia artificial.

Ahora solo falta que desde aquí dé el salto a otros ámbitos y se acabe imponiendo del todo y en todos lados.