Cuando hablamos de ciencia de datos hay muchas areas que estan relacionadas a esta, como las matematicas, estadistica, machine learning, y por supuesto la programación. Asi que si hablamos de esta ultimo la pregunta es ¿Que lenguajes de programacion deberia aprender en Ciencia de datos?
Bueno, el día de hoy les comentaré de los lenguajes más importantes en esta area y para que se usan.
Si tienes prisa, estos son los lenguajes de los que hablaremos principalmente:
- R
- SQL
- Python
Aunque tambien mencionaré otros lenguajes más, a modo de darte más información (como Java, Julia, C++, Rust, entre otros)
empecemos con R.
R
Si hablamos de un lenguaje que esta pensado especificamente para Ciencia de Datos indudablemente tenemos que hablar de R. Este lenguaje fue creado en el año 1992, por estadisticos (Ross Ihaka y Robert Gentleman). Siendo utilizado actualmente en comunidades academicas y de investigacion.
El lenguaje fue diseñado como un lenguaje de programacion Open Source, y es muy usado en visualizacion de datos (Data Visualizations) y generacion de graficas, los cuales soportan una gran variedad de tecnicas como: linear and nonlinear modelling, test estadisticos, time series analysis, clasificacion, clustering, entre otros.
R posee una gran variedad de paquetes creados por su comunidad, que se engloban bajo The Comprehensive R Archive Network o tambien llamado CRAN, que es el sitio web donde se alojan miles de paquetes, que van desde herramientas básicas para el análisis de datos hasta paquetes especializados para áreas como la bioinformática, la econometría, la visualización de datos Y que tipicamente se usan a traves de su propio IDE o entorno de desarrollo llamado R Studio, que permite ademas de solo escribir codigo, tambien generar documentos enriquecidos con graficos, textos, ademas de código, llamado R Notebooks, similar a los Jupyter Notebook en Python.
Ahora de entre todos los paquetes de R, hay un conjunto de paquetes creados por los mismos desarrolladores de R Studio, que estan desarrollados bajo la misma filosofia, que se basa en la idea de que los datos deben estar en un formato "ordenado" o "tidy" para ser fácilmente analizados y visualizados. Esta coleccion de paquetes se llama tidyverse y podemos encontrar a paquetes como:
- dplyr: proporciona herramientas para manipular datos, como filtrado, selección, agregación y unión de datos.
- tidyr: que permite ordenar datos “sucios” para obtener objetos de datos en R
- ggplot2: es una herramienta para crear visualizaciones de datos personalizables y estéticamente atractivas.
- purrr: proporciona herramientas para trabajar con funciones y mapas en R.
- stringr: ayuda a manipular y trabajar con cadenas de caracteres.
- readr: proporciona una forma rápida y sencilla de leer y cargar datos en R.
Por nombrar algunos.
SQL
Muy a parte de los lenguajes de programacion que voy a mencionar, hay otro Lenguaje que es muy importante aprender independientemente del lenguaje de programacion que escojas, este es SQL. Y este lenguaje no esta diseñado especificamente para ciencia de datos sino para poder administrar datos en bases de datos, es decir consultar y mutar datos a lo largo del tiempo.
Solo que es muy importante en ciencia de datos tambien, ya que las bases de datos relacionales, son una fuente común de datos estructrados. Asi que aprenderlo es practiacmente un requerimiento en muchos casos. De hecho tanto Python como R ya tienen bibliotecas que permiten comunicarse con baes de datos SQL populares como Postgres, SQL Server, Oracle, MySQL y otros.
Por ejemplo algunas fases en donde SQL es usado son:
- Adquisición y extracción de datos: SQL se puede utilizar para extraer y manipular datos de bases de datos ademas de otras fuente como archivos CSV, archivos de texto y otros tipos de formatos.
- Limpieza de datos: SQL se puede utilizar para limpiar datos, eliminar duplicados y corregir errores. Por ejemplo, se pueden usar consultas SQL para eliminar registros duplicados en una tabla o para rellenar valores faltantes.
- Transformación y preparación de datos: SQL se puede utilizar para transformar y preparar datos para su análisis posterior. Por ejemplo, se pueden usar consultas SQL para realizar JOINS, agrupación y filtrado en tablas de bases de datos.
- Análisis exploratorio de datos: SQL se puede utilizar para explorar los datos, realizar consultas para ver tendencias y patrones, y obtener una mejor comprensión de los datos.
- Modelado y análisis de datos: SQL se puede utilizar para crear tablas temporales o permanentes y para almacenar los resultados de análisis y modelos de aprendizaje automático.
Python
Python al igual R es un lenguaje de programacion Open Source que es muy usado en Ciencia de datos, especificamente en Machine Learning, mientras que R es mucho más usado en Analisis estadistico y visualizacion de datos.
Python es lenguaje lleva mucho tiempo de desarrollo desde el año 1989, y si bien se usa mucho en Data Science, en realidad es un lenguaje de proposito general, esto quiere decir que sirve para crear distintos tipos de aplicaciones como:
Desarrollo Web: Django, Flask, FastAPI Desarrollo Desktop, Tkinter, PyQT Desarrollo de Videojuegos
Ademas que tambien es usado en Hacking y para crear Scripts de automatizacion en sitemas e la nube, por nombrar algunos de usos comunes.
Esto hace que en Python existan una enorme cantidad de paquetes que permiten hacer de todo, en las que tambien se encuentras bibliotecas poppulares para realizar tareas similares a las que pueden encontrarse en R, como lo serian:
- pandas, manipulacion de datos
- numpy, usado para manipular arreglos multidimensionales
- matplotlib, una biblioteca de visualización de datos que permite crear gráficos de alta calidad y personalizables.
Ademas de bibliotecas muy usadas en Machine Learning como:
- Tensorflow
- Keras
- Scikit Learn
- Pytorch
Uno de las caracteristicas de python es que es muy sencilo de aprender gracias a su sintaxis legible, y es muy usado con Herramientas como
- Jupyter Notebook: una aplicación web que permite crear y compartir documentos que contienen código, visualizaciones y texto enriquecido. Es muy popular entre los científicos de datos porque permite explorar y visualizar datos de forma interactiva.
- Spyder: un entorno de desarrollo integrado (IDE) para Python que proporciona herramientas avanzadas para la edición, depuración y ejecución de código.
- Conda: una distribución de Python que permiten crear entornos virtuales y que posee incluye las bibliotecas más populares para la ciencia de datos y el aprendizaje automático. Además, ofrece un gestor de paquetes y un entorno de conda para gestionar dependencias y crear entornos virtuales.
- IPython
Y a pesar que R es un lenguaje especificamente diseñado para data scicene, este gran ecosistema de herramientas de Python hace que sea mas facil crear servicios web que ejecuten modelos y que puedan llegar a ser usados por una enorme cantidad de usuarios.
asi que por esta razon vas a escuchar mucho que Python se utiliza más en tareas relacionadas con el procesamiento de datos, aprendizaje automático y deep learning, mientras que R se utiliza más en tareas relacionadas con el análisis estadístico y la visualización de datos.
Ahora, Python es mucho mas lento en ejecucion que lenguajes como Julia, C++, Rust, asi que tambien tenemos lenguajes adicionales que pueden llegar a ser encontrados en areas de ciencia de datos, aunque en usos mas especializados.
Otros lenguajes
Entocnes Otros lenguajes que son muy usados en Ciencia de Datos son:
- MATLAB: un lenguaje de programación interpretado que se utiliza en ciencia e ingeniería, para el cálculo numérico, la visualización de datos y el procesamiento de señales.
- Julia: un lenguaje de programación de alto rendimiento diseñado para aplicaciones científicas y técnicas. Julia combina características de lenguajes como Python, MATLAB y R, pero con una sintaxis más simple y una velocidad de ejecución comparable a la de C o Fortran. Julia es especialmente adecuado para la computación numérica, el aprendizaje automático y la visualización de datos.
- Java: es especialmente adecuado para el procesamiento de datos a gran escala y la programación distribuida, gracias a bibliotecas como Hadoop y Apache Spark. Java también cuenta con bibliotecas para el procesamiento de imágenes, el aprendizaje automático y la visualización de datos.
- Scala: un lenguaje de programación de alto nivel que se utiliza en la programación de aplicaciones distribuidas y en el procesamiento de datos a gran escala. Scala se integra bien con Apache Spark, una plataforma de procesamiento distribuido de big data, y cuenta con bibliotecas para el aprendizaje automático y la visualización de datos.
Conclusion
En fin si lo tuyo es hacer un trabajo muy especializado o investigacion puedes ir con R, pero si planeas a usar modelos para resolver tareas practicas, es decir proveer algun tipo de servico, como por ejemplos estos servicios AI que hoy dan mucho de que hablar:
- chat-gpt
- midjorney
- jasper
- etc
probablemente Python sea una mejor opcion, al permitirte poder iplementar sofware con muchas más facildad, al ser un lenguaje que puede ser usado tambien en la web, y si en caso ya sabes desarrollar aplicaciones y ahora quieres entrar en el mundo de la ciencia de datos, tambien creo que Python seria una opción más simple.
Por darte un ejemplo con R podria analizar el comportamiento de compradores, mientras que con Python puedes crear un sitema de reconocimiento facial o de voz.
Ahora el estudiar estos lenguajes de programacion, solo es una parte de una la ciencia de datos, ya que hay otros temas bastante extensos como Machine Learning, Estadistica, ANalisis de datos, por ejemplo que requieren su propio tiempo de estudio, asi que no creas que solo se trata de aprender a programar en estos lenguajes para ser un data Scientist, de hecho aqui es mucho más obvio ver que estos lenguajes solo son herramientas porque al final lo que importa más son los modelos matematicos y estadisticos, para luego recien llevarlos a cabo usando estas herramientas.
Si tienes otra sugerencia de mas lenguajes, dejamelo en los comentarios y nos vemos en un siguiente articulo.
Recursos
- https://jpt.spe.org/top-5-programming-languages-data-scientists-learn?gclid=Cj0KCQiAn4SeBhCwARIsANeF9DLLXSatPfMJzgrCawTEMn9JznjM-ZpAMCm_7o9xgxFeWtsyYWH2Cm8aAlgOEALw_wcB
- https://www.datacamp.com/blog/top-programming-languages-for-data-scientists-in-2022
- https://youtu.be/Rt6eb9VOFII
- https://www.youtube.com/watch?v=AI1eKN1Eldg