🔹 Bienvenidos

¡Hola! Por favor piensa en la respuesta a esta pregunta por un momento:

¿Cómo se aplica Python a situaciones y proyectos reales?

Si estás aprendiendo Python y quieres saber la respuesta, entonces este artículo es para ti.

Tener una idea clara de las aplicaciones y del vasto potencial de este lenguaje de programación te dará la motivación que necesitarás durante tu viaje de aprendizaje.

¡Comencemos! ✨

🔸 Python en escenarios del mundo real

Python es usado en prácticamente todos los sectores de la industria y de la ciencia que puedas imaginar, incluyendo:

Este artículo cubre un amplio rango de aplicaciones de este lenguaje de programación en estas industrias con ejemplos y librerías de Python. Comencemos con las aplicaciones de Python en ciencia de datos.

🔹 Ciencia de datos: análisis y visualización

image-10
Muestra de visualizaciones de datos de las galerías de Matplotlib y Seaborn.

Quizás una de las aplicaciones más populares de Python es ciencia de datos. El poder de las liberías de Python desarrolladas para el análisis y visualización de datos es asombroso. Veamos por qué.

Aplicaciones en ciencia de datos

Con una librería de visualización de datos de Python, puedes crear una variedad increíble de gráficos y representaciones visuales, tales como:

  • Líneas, barras, y marcadores.
  • Imágenes, contornos y campos.
  • Subgráficos, ejes y figuras.
  • Estadísticas (diagramas de caja, gráficos de barra e histogramas).
  • Gráficos circulares y polares.
  • Gráficos 3D.
  • ¡Y más!

Puedes agregar texto, etiquetas, anotaciones, color, formas, colecciones, animaciones e interactividad a tus gráficos dependiendo del paquete o librería que escojas usar en tu proyecto.

💡 Datos: puedes ver algunos ejemplos de visualizaciones de datos generadas con Python en la imagen anterior.

Librerías y paquetes

Veamos algunos de los paquetes y librerías más populares para trabajar con Python en ciencia de datos:

Python para análisis de datos

  • NumPy: este paquete se describe como "el paquete fundamental para computación científica con Python." De acuerdo con el sitio web oficial de este paquete, "casi todos los científicos de datos que trabajan con Python aprovechan el poder de NumPy".
  • Pandas: es una "herramienta de código abierto rápida, poderosa, flexible y fácil de usar para analizar y manipular datos".

Python para visualización de datos

  • Matplotlib: es una "librería exhaustiva para crear visualizaciones estáticas, animadas e interactivas en Python". Si tienes curiosidad, puedes encontrar muestras de lo que puedes hacer con esta librería en su galería de ejemplos.
  • Seaborn: es "una librería de Python para visualización de datos basada en matplotlib". Si tienes curiosidad, puedes encontrar muestras de lo que puedes hacer con esta librería en su galería de ejemplos.
  • ggplot2: es "un sistema para crear gráficos declarativamente, basado en La Gramática de los Gráficos". De acuerdo a su sitio web oficial: "tú provees los datos y le dices a ggplot2 cómo transformar las variables a la presentación, qué primitivas de gráficos usar y él se encarga de los detalles".
  • Bokeh: es "una librería interactiva de visualización para navegadores web modernos".
  • Pandas: esta librería tiene muchas herramientas para visualización de datos.

Recursos para aprender

Si quieres aprender análisis y visualización de datos en Python, Jupyter Notebooks, Numpy, Pandas, archivos CSV, data frames y más, puedes comenzar tu aprendizaje de forma gratuita con la Certificación de Análisis de Datos con Python y la Certificación de Visualización de Datos de freeCodeCamp:

image-12

Durante esta certificación trabajarás y completarás los siguientes proyectos:

  • Visualiza datos con una gráfica de barras.
  • Visualiza datos con una gráfica de diagrama de dispersión.
  • Visualiza datos con un mapa de calor.
  • Visualiza datos con un mapa coroplético.
  • Visualiza datos con un diagrama de mapa de árbol.
image-13

Durante esta certificación trabajarás y completarás los siguientes proyectos:

  • Calculadora de media, varianza y desviación estándar.
  • Analizador de datos demográficos.
  • Visualizador de datos médicos.
  • Visualizador de series temporales de vistas de una página.
  • Predictor del nivel del mar.

💡 Dato: esta certificación está en proceso de traducción a español.

El canal de YouTube de freeCodeCamp en inglés también tiene muy buenos tutoriales para que inicies tu aprendizaje:

Adicionalmente, estos son algunos recursos útiles si deseas aprender cómo trabajar con estas librerías:

🔸 Aprendizaje automático (machine learning)

image-1

Python es una herramienta esencial para todo desarrollador que quiera adentrarse en el fascinante mundo del aprendizaje automático (machine learning). Veamos una breve introducción al aprendizaje automático.

¿Qué es el aprendizaje automático?

El aprendizaje automático es un área de la ciencia de la computación que crea sistema que son capaces de aprender por sí mismos.

Este tipo de sistema usa algoritmos que se mejoran continuamente en base a los datos ingresados previamente, los cuales permiten que el sistema "aprenda". Aprende cómo responder de forma autónoma a nuevos escenarios al generar un resultado apropiado en situaciones nuevas en base a su conocimiento previo.

Uno de los aspectos más asombrosos de estos sistemas es que se mejoran continuamente.

No son como los programas que normalmente escribimos en un archivo de Python donde definimos cada posible acción que el programa puede realizar. En aprendizaje automático, el sistema es entrenado para "pensar" y tomar decisiones en base a conocimiento previo.

Por eso decimos que las máquinas "aprenden" de los datos.

💡 Dato: esta es una charla interesante de Google: Machine Learning Zero to Hero (Google I/O'19).

Redes neuronales: Las bases del aprendizaje automático

Las redes neuronales son las unidades de procesamiento del sistema. Ellas intentan simular una red biológica de neuronas en el cerebro. Estas neuronas "virtuales" reciben datos, aprenden cómo procesarlos y generan un resultado en base a su conocimiento previo.

Este proceso es muy parecido a lo que nuestro cerebro hace cada momento de cada día.

Gracias a las redes neuronales, un algoritmo de aprendizaje automático puede aprender cómo predecir el resultado esperado a partir de un valor o un conjunto de valores dados en base a su conocimiento previo.

Por ejemplo, cuando ves videos recomendados en YouTube, esas recomendaciones fueron generadas por redes neuronales que predijeron los videos que te podrían gustar en base a tus patrones previos. Increíble, ¿no?

💡 Dato: este es un artículo interesante escrito por Google si quieres leer más sobre este ejemplo de YouTube.

Python y aprendizaje automático

Estoy segura de que debes estar preguntándote: ¿cuál es el rol de Python en esta área? Es una de las herramientas más populares y poderosas para programar este tipo de sistema.

Una de las librerías más populares usadas por los desarrolladores alrededor del mundo para trabajar con Python aplicado al aprendizaje automático es TensorFlow. Es una librería gratuita y de código abierto (open source) desarrollada por el Google Brain Team. Esta librería se usa para investigación y producción en Google.

De acuerdo a Jeff Dean, el líder de la división de Inteligencia Artificial de Google:

Hoy es usado intensamente en nuestros sistemas de reconocimiento de voz, en un producto nuevo de Google Photos, Gmail y en Google Search (fuente).

Esta es la cita original en inglés:

Today it is used heavily in our speech recognition systems, in a new Google Photos product, Gmail, and Google Search. (source)

Lo mejor de todo es que los desarrolladores alrededor del mundo pueden usar esta librería para abordar problemas de la vida real.

💡 Dato: este es un video genial sobre TensorFlow creado por Google.

Aquí también tenemos otras dos librerías usadas para aprendizaje automático:

  • Keras – una librería de código abierto de redes neuronales escrita en Python.
  • PyTorch – una librería de código abierto de aprendizaje automático usada para desarrollar y entrenar redes neuronales.

Proyectos de aprendizaje automático en Python

El potential del aprendizaje automático es verdaderamente infinito. Puede ser aplicado a práticamente cualquier área y contexto que puedas imaginar. Si la tarea o el problema a resolver requiere aprender a partir de patrones y predecir el resultado, un modelo de aprendizaje automático definitivamente puede ayudar.

Por ejemplo, para darte una idea del tipo de proyectos que puedes crear, el currículo de freeCodeCamp incluye una Certificación de Aprendizaje Automático con Python:

image-14

💡 Dato: esta certificación se encuentra en proceso de traducción a español.

Durante la certificación puedes crear y completar los siguientes proyectos:

  • Piedra, papel o tijera.
  • Clasificador de imágenes de gatos y perros.
  • Sistema de recomendación de libros con K-Nearest Neighbors.
  • Calculadora de costos de salud con regresión lineal.
  • Clasificador de SMS con redes neuronales.

Más ejemplos de aplicaciones reales

Puedes encontrar más ejemplos de las aplicaciones de aprendizaje automático en Kaggle, una "comunidad en línea de científicos de datos y practicantes de aprendizaje automático" creada por Google.

En esta plataforma, puedes practicar tus habilidades de Python y de aprendizaje automático trabajando en proyectos y participando en competencias.

Para darte una idea del tipo de proyectos que puedes abordar con aprendizaje automático, competencias realizadas en Kaggle incluyen:

  • Predecir el descenso de la función pulmonar.
  • Predecir la sobrevivencia en el Titanic.
  • Construir herramientas para monitorear poblaciones de pájaros.
  • Etiquetar paisajes famosos.
  • Predecir la propagación de COVID-19.
  • Estimar ventas por unidad de bienes en las tiendas Walmart.
  • Identificar videos con manipulación de cara o sonido.
  • Predecir tiempo de espera en las principales intersecciones de ciudades.
  • Detectar fraude en las transacciones de un cliente.
  • Predecir el ingreso por taquilla a nivel mundial de una película.
  • Predecir adopción de mascotas.
  • Identificar riesgo cuando los pilotos están distraídos, dormidos, o en otros estados cognitivos.

Como puedes ver en esta lista corta de proyectos, las aplicaciones van desde medicina hasta negocios, desde biología hasta detección de riesgos, desde detección de fraude hasta procesamiento de imágenes. Las posibilidades son realmente infinitas cuando abordas un problema de la vida real usando aprendizaje automático.

Recursos para aprender

El canal de YouTube de freeCodeCamp en inglés tiene estos tutoriales útiles para ayudarte a comenzar en el mundo del aprendizaje automático con Python:

🔹 Desarrollo web

image-41

Python es usado en el campo del desarrollo web para construir el "back-end" de las aplicaciones web. Comencemos esta sección hablando sobre qué es el "back-end" y cómo nos ayuda a crear aplicaciones web.

Python para desarrollo back-end

En una aplicación web, todo el código que se usa para interactuar con el usuario y para crear lo que ve el usuario se denomina la parte "front-end" de la aplicación.

Python es usado para programar la funcionalidad que actúa "detrás de escenas", la parte del código que permite que se ejecute la funcionalidad de la aplicación que no necesariamente ves directamente en la pantalla.

Maneja la parte del servidor de la aplicación, cómo se pide o envía información desde o hacia las base de datos cuando el usuario interactúa con la aplicación. Retorna los datos solicitados por el usuario para permitir que la aplicación funcione correctamente.

💡 Dato: El desarrollo web "full-stack" involucra crear tanto la parte "front-end" como la parte "back-end" de una aplicación web para que sea presentable para el usuario y a su vez pueda interactuar con bases de datos.

Frameworks web

Estos son algunos frameworks web populares de Python:

  • Django: un "framework web de Python de alto nivel que incentiva el desarrollo rápido, limpio y pragmático."
  • Flask: un microframework para desarrollar aplicaciones web en Python.
  • Pyramid: un "framework web de Python pequeño, rápido y realista."
  • Web2Py: un "framework full-stack gratuito y de código abierto para el desarrollo rápido de aplicaciones web, escalables, seguras y que trabajan con bases de datos."
  • Bottle: un "framework web micro WSGI para Python que es rápido, simple y ligero."

Recursos para aprender

El canal de YouTube de freeCodeCamp tiene tutoriales gratuitos para aprender desarrollo web en Python:

También tenemos los siguientes recursos gratuitos para aprender a trabajar con estos frameworks web:

🔸 Enseñanza de computación y programación

image-4

Actualmente Python desempeña un rol muy importante en la enseñanza de computación y programación alrededor del mundo. Veamos por qué.

¿Por qué Python?

Python es usado ampliamente como herramienta de enseñanza porque:

  • Es fácil de aprender: su sintaxis es sencilla y se puede aprender rápidamente. Los estudiantes pueden comenzar a aprender aspectos más avanzados de ciencias de la computación mucho más rápidamente que con otros lenguajes de programación.
  • Es poderoso: se usa en aplicaciones de la vida real, así que los estudiantes inmediatamente comienzan a adquirir habilidades valiosas para su vida profesional.
  • Es versátil: puede reconocer y manejar varios paradigmas de programación incluyendo programación imperativa, programación funcional, programación procedimental y programación orientada a objetos.

El creador del lenguaje de programación Python, Guido van Rossum, mencionó que:

Yo creo que Python es mucho más fácil que enseñar a los estudiantes a programar y enseñarles C o C++ o Java al mismo tiempo porque todos los detalles de los lenguajes de programación son mucho más complicados.

Cita original en inglés:

Now, it's my belief that Python is a lot easier than to teach to students programming and teach them C or C++ or Java at the same time because all the details of the languages are so much harder.

La sintaxis de Python es fácil e intuitiva, así que los estudiantes pueden comenzar a aprender pensamiento computacional y habilidades de resolución de problemas más rápidamente, la cual es la meta principal de los cursos de introducción a ciencias de la computación.

Python en el salón de clases y en el aprendizaje en línea

Muchas universidades y escuelas alrededor del mundo han decidido enseñar cursos introductorios de programación y ciencias de la computación usando Python.

Por ejemplo, el MIT, una de las universidades líderes a nivel mundial en el campo de la tecnología, enseña introducción a programación y ciencias de la computación usando Python (tanto en el campus como en la versión en línea del curso en edX).

De acuerdo al artículo publicado por el MIT News cuando la versión en línea del curso alcanzó los 1.2 millones de estudiantes enrolados desde que se publicó, el curso "se ha convertido en el MOOC más popular de la historia del MIT."

Esto demuestra que la popularidad de Python continúa creciendo. En el artículo puedes encontrar testimonios de estudiantes que aprendieron Python y cómo este nuevo conocimiento mejoró sus vidas.

En el artículo, la profesora Ana Bell, profesora del departamento EECS (Ingeniería Eléctrica y Ciencias de la Computación) del MIT, comparte que:

Fundamentalmente, la serie 6.00 enseña pensamiento computacional...Lo hace usando el lenguaje de programación Python, pero el curso también enseña conceptos de programación que pueden ser aplicados a cualquier otro lenguaje de programación.

Cita original en inglés:

“At its core, the 6.00 series teaches computational thinking...It does this using the Python programming language, but the course also teaches programming concepts that can be applied in any other programming language.”

Esto demuestra claramente el potencial de Python como herramienta de enseñanza. Puede ser usado para enseñar conceptos de programación que también pueden ser aplicados a otros lenguajes de programación.

Y sin agregar una capa extra de complejidad que la sintaxis de otros lenguajes de programación como Java o C añaden al proceso de aprendizaje.

Durante los últimos años, los cursos en línea se han convertido en una parte importante de la vida diaria de estudiantes de todas las edades alrededor del mundo. La variedad de cursos y recursos gratuitos en línea se ha expandido increíblemente estos últimos años.

Por ejemplo, el currículo de freeCodeCamp incluye tres certificaciones gratuitas con proyectos para ayudarte a expandir tus habilidades de Python en áreas claves con alta demanda a nivel mundial:

  • Computación Científica con Python.
  • Análisis de Datos con Python.
  • Aprendizaje Automático con Python.

La Universidad de Harvard también ofrece los siguientes cursos en línea que pueden ser tomados de forma gratuita:

  • CS50's Introduction to Computer Science.
  • CS50's Web Programming with Python and JavaScript.
  • CS50's Introduction to Artificial Intelligence with Python.

Definitiamente, Python se ha convertido en una herramienta clave y ha mejorado la educación de programación y computación a nivel mundial y lo seguirá haciendo en el futuro.

Si estás pensando en enseñar un curso usando Python o en aprender Python, te garantizo que tu tiempo y esfuerzo valdrán totalmente la pena.

🔹 Visión por computadora y procesamiento de imágenes

image-45

Python es usado para visión por computadora y procesamiento de imágenes, campos que están en rápida expansión.

La meta del procesamiento de imágenes es procesar una imágen, aplicarle una transformación y luego retornar una nueva versión de la imagen original.

En cambio, la meta de la visión por computadora es más compleja porque intenta lograr que la computadora entienda e interprete una imagen y su contenido.  

Procesamiento de imágenes

Comencemos con el procesamiento de imágenes. Con una librería de Python, puedes realizar operaciones como:

  • Cortar, voltear y rotar.
  • Manipular la exposición y los canales de colores.
  • Detectar bordes y líneas.
  • Agregar filtros y restaurar imágenes.

Visión por computadora

Ahora veamos visión por computadora. Si investigas sobre este tema, te podrían sorprender sus aplicaciones. Algunas de ellas son:

  • Navegación.
  • Detección de objetos y eventos.
  • Reconocimiento facial.
  • Clasificación de imágenes.

Este campo científico es tan importante que Google desarrolló una herramienta llamada Cloud Vision, la cual tiene una versión creada con Python para que los desarrolladores puedan incorporar esta funcionalidad en sus programas.

Según el tutorial "Using the Vision API with Python" de Google Codelabs, la Google Cloud Vision API:

Le permite a los desarrolladores integrar fácilmente funcionalidad de detección de visión en sus aplicaciones, incluyendo el etiquetado de imágenes, detección de caras y paisajes, reconomiento óptico de caracteres y etiquetado de contenido explícito.

Cita original en inglés:

Allows developers to easily integrate vision detection features within applications, including image labeling, face and landmark detection, optical character recognition (OCR), and tagging of explicit content.

Este conjunto de herramientas provee funcionalidad para detección de caras, detección de paisajes, detección de logos, detección de etiquetas, detección de texto y más.

💡 Dato: una de las aplicaciones más impresionantes de visión por computadora es el desarrollo de software para controlar vehículos autónomos. Estos vehículos necesitan "ver" dónde están conduciendo, dónde está su carril y qué objetos los rodean (incluyendo otros vehículos). La visión por computadora desempeña un rol clave en esta funcionalidad.

Librerías de Python

Estas son algunas librerías asombrosas para visión por computadora y procesamiento de imágenes:

  • OpenCV: una "librería de código abierto para visión por computadora y aprendizaje automático." Su versión en Python se denomina OpenCV-Python.
  • scikit-image: una "collección de algoritmos usados para el procesamiento de imágenes."
  • NumPy: puede ser usado para procesar los pixeles de una imágen como un array (arreglo) de dos dimensiones.
  • SciPy: el paquete scipy.ndimage "contiene varias funciones para el procesamiento de imágenes multidimensionales."

🔸 Desarrollo de videojuegos

image-6

Los videojuegos definitvamente moldean vidas y crean recuerdos inolvidables. Continuarán siendo parte de nuestra sociedad. Python ya está aquí, encendiendo la chispa de la creación de videojuegos.

Frameworks de Python para desarrollo de videojuegos

De acuerdo con la documentación oficial de Python, existen dos frameworks principales usados para el desarrollo de videojuegos:

  • pygame: "el paquete original y actualmente muy activo para desarrollo de videojuegos con Python. Permite que Python hable con SDL, una librería multimedia compatible con múltiples plataformas. Como necesita ser compilado para cada plataforma y para cada versión de Python, puede haber un retraso cuando se publica una versión nueva de Python."
  • pyglet: este es el "nuevo, basado en OpenGL. Como es un paquete completamente escrito con Python, puede ser usado directamente, incluso cuando se publican nuevas versiones de Python (excepto la transición de Python 2 a Python 3)."

También puedes usar el módulo turtle para crear juegos sencillos. Turtle es un módulo que se instala automáticamente cuando instalas Python en tu computadora. Te ayuda a crear juegos con gráficos sencillos y con una interfaz de usuario sencilla.

Recursos para aprender

Si quieres aprender desarrollo de videojuegos con Python, el canal de YouTube de freeCodeCamp tiene estos tutoriales buenísimos:

🔹 Medicina y farmacología

image-9

Python también tiene aplicaciones asombrosas en el área de la medicina. Te sorprendería saber cómo la tecnología está siendo combinada con el conocimiento médico para realizar diagnósticos y recetar tratamientos precisos y eficientes para los pacientes.

Aplicaciones

Algunos ejemplos del uso de Python en medicina y farmacología incluyen:

  • Realizar diagnósticos clínicos en base a registros médicos y síntomas.
  • Analizar datos médicos.
  • Crear modelos computacionales para acelerar el proceso de desarrollo de nuevos medicamentos.

Estas aplicaciones incluyen miles y miles de ejemplos alrededor del mundo. Seleccioné algunos de ellos para ilustrar cómo Python está impactando este campo. Veamos estos ejemplos.

Historia de éxitos farmacéuticos: AstraZeneca

Según al documentación oficial de Python, una de las principales compañías farmacéuticas, AstraZeneca, usó Python para mejorar sus modelos computacionales existentes con la meta de hacerlos "más robustos, extensibles y fáciles de mantener."

Los investigadores usaron los modelos para simular la estructura química de las moléculas y sus efectos en el cuerpo humano. Esto ayudó a los científicos a identificar moléculas que podrían ser incluidas en nuevos medicamentos y también permitió que la fase de prueba en el laboratorio fuese más rápida.

Según el artículo, cuando se unió al equipo Andrew Dalke, un "defensor conocido de Python en el área de química y biología computacional" convenció al equipo de que Python era exactamente lo que necesitaban.

Python fue escogido para este trabajo porque es uno de los mejores lenguajes disponibles para "physical scientists", es decir, para individuos o profesionales de la ciencia que no tienen conocimientos de ciencias de la computación.

Cita original en inglés:

Python was chosen for this work because it is one of the best languages available for physical scientists, that is, for people who do not have a computer science background.

Él dijo que:

Python fue diseñado para resolver problemas de la vida real que un programador experto enfrenta. El resultado es un lenguaje que se adapta bien desde programas pequeños escritos por un químico hasta paquetes grandes escritos por un desarrollador de software.

Cita original en inglés:

Python was designed to solve real-world problems faced by an expert programmer. The result is a language that scales well from small scripts written by a chemist to large packages written by a software developer.

Increíble, ¿no? Python puede ser usado para crear modelos computacionales que los laboratorios de las compañías farmacéuticas usan para desarrollar nuevos medicamentos.

Identificación de glóbulos rojos

Otra aplicación médica interesante de Python está relacionada con la hematología. Normalmente, profesionales especializados analizan las muestras de sangre al contar e identificar las células manualmente pero esto puede ser mejorado con la ayuda de la automatización.

Los investigadores descubrieron que Python puede ser la herramienta adecuada para el trabajo. Veamos un proyecto interesante.

IdentiCyte
La meta de este proyecto es identificar y clasificar las formas de los glóbulos rojos en base a imágenes tomadas con microscopios ópticos. Según este artículo, "la forma de los glóbulos rojos puede ser usada para ayudar a diagnosticar enfermedades como la leucemia, anemia de células falciformes y la malaria."

El proyecto fue desarrollado por investigadores del Bioresource Processing Research Institute Australia. Fue programado en Python y usó paquetes de procesamento de imágenes y librerías como numpy, scipy, opencv-python, scikit-learn y matplotlib.

Paquetes médicos de Python

  • pyGeno: un paquete de código abierto de Python desarrollado por Tariq Daouda en el Institute for Research in Immunology and Cancer (IRIC). Fue desarrollado para "aplicaciones médica de precisión de temas relacionados con genómica y proteómica." Trabaja con genomas de referencia y personalizados.  
  • MedPy: una librería de código abierto de Python para el "procesamiento de imágenes médicas en Python, con la funcionalidad básica para leer, escribir y manipular imágenes grandes con dimensiones arbitrarias."

Ejemplos de aplicaciones médicas

🔸 Biología y bioinformática

image-7

Python también tiene aplicaciones asombrosas en el mundo de la biología y bioinformática. Estas aplicaciones incluyen procesamiento de secuencias de ADN, simulación de dinámica de poblaciones y genética, y modelado de estructuras bioquímicas.

Biopython

Biopython es un framework de Python con "herramientas gratuitas para el cómputo biológico." Su meta es "abordar la necesidad de trabajo actual y futuro en el área de bioinformática."

De acuerdo a su documentación, este framework incluye funcionalidad para:

  • Trabajar con secuencias y realizar operaciones comunes con ellas tales como transcripción, traducción y cálculos de peso.
  • Conectarse con bases de datos biológicas.
  • Realizar clasificación de datos usando K-Nearest Neighbors, Naive Bayes y Support Vector Machines.
  • Trabajar con árboles filogenéticos y con genética de poblaciones.

Su documentación explica que "la meta de Biopython es permitir que sea lo más sencillo posible usar Python para bioinformática creando módulos y clases reusables y de alta calidad."

Rosalind: practica Python resolviendo retos de bioinformática

image-46

Rosalind es una "plataforma para aprender bioinformática a través de la resolución de problemas." Es "gratuita y abierta al público" (la página de preguntas frecuentes indica que está en modo beta).

Puedes usar Python para resolver los retos en la plataforma. Como es un lenguaje de programación popular en la plataforma, hay una sección llamada "Python Village" donde puedes aprender los fundamentos de Python antes de abordar los algoritmos de bioinformática.

Los usuarios resuelven problemas ejecutando sus soluciones en sus computadoras, luego procesan el conjunto de datos dados por la plataforma para cada problema y copian y pegan sus resultados para verificar la respuesta.

💡 Dato: el nombre del proyecto conmemora a Rosalind Franklin, "cuyo trabajo sobre la cristalografía de rayos X con Raymond Gosling facilitó el descubrimiento de la doble hélice de ADN por Watson y Crick."

Paquetes y frameworks

  • ProDy: un paquete gratuito y de código abierto "para el análisis de la dinámica estructural de proteínas" desarrollado por Bahar Lab de la Universidad de Pittsburgh.
  • PySB: un "framework para construir modelos matemáticos de sistemas bioquímicos como programas de Python" desarrollado por miembros del Lopez Lab en la Universidad Vanderbilt y del Sorger Lab en Harvard Medical School.
  • The Community Simulator: es un "paquete de Python disponible de forma gratuita para simular la dinámica de población microbiana de una forma reproducible, transparente y adaptable" desarrollado por investigadores de la Universidad de Boston.

💡 Dato: si quieres aprender más sobre las aplicaciones de Python en bioinformática, esta es una charla de Martin Schweitzer en PyCon Australia: "Python for Bioinformatics for learning Python".

🔹 Neurociencia y psicología

image-37

Python también tiene aplicaciones en neurociencia y en la investigación experimental de psicología.

Python en neurociencia

Según el artículo Python in neuroscience escrito por investigadores del Center for Brain Simulation, Ecole Polytechnique Fédérale de Lausanne en Ginebra, Suiza:

La computación se está convirtiendo en algo esencial en todas las ciencias, para la adquisición y el análisis de datos, automatización y prueba de hipótesis a través del modelado y de la simulación.

Cita original en inglés:

Computation is becoming essential across all sciences, for data acquisition and analysis, automation, and hypothesis testing via modeling and simulation.

Específicamente mencionaron lo siguiente sobre Python:

Es claro para nosotros en 2007 que estamos en la cúspide de Python en el ecosistema de la neurociencia, particularmente en neurociencia computacional y neuroimagen y también en el análisis de datos electrofisiológicos y en psicofísica.

Cita original en inglés:

It became clear to us in 2007 that we were on the cusp of an emerging Python in neuroscience ecosystem, particularly in computational neuroscience and neuroimaging, but also in electrophysiological data analysis and in psychophysics.

Como puedes ver, Python y la computación se han expandido a prácticamente todas las ciencias.

PsychoPy

PsychoPy es un "paquete de código abierto para realizar experimentos con Python" desarrollado por la Universidad de Nottingham. De acuerdo con la documentación oficial de este paquete:

Lo usan muchos laboratorios alrededor del mundo para psicofísica, neurociencia cognitiva y psicología experimental.

El sitio web oficial de este paquete menciona que es:

  • Fácil de aprender.
  • Lo suficientemente preciso para psicofísica.
  • Flexible.
  • Se puede usar en línea o en el laboratorio dependiendo de la preferencia del usuario.

🔸 Astronomía

image-38

Python también tiene aplicaciones en astronomía y astrofísica. Veamos tres de los paquetes más usados en esta área de la ciencia:

Astropy

El paquete Astropy "contiene distintas clases, herramientas y un framework cuyo propósito es proveer herramientas comúnmente usadas para astronomía."

Astropy es parte de un proyecto mayor llamado The Astropy Project el cual "es un esfuerzo de la comunidad para desarrollar un conjunto común de paquetes usados para astronomía en Python e incentivar un ecosistema de paquetes interoperables de astronomía."

Según su página About, una de sus metas es "mejorar el uso, la interoperabilidad y la colaboración entre paquetes de Python para astronomía."

💡 Dato: puedes ver ejemplos de proyectos hechos con Astropy en esta galería de ejemplos.

SunPy

El paquete SunPy es descrito como "el ambiente de análisis de datos solares desarrollado por la comunidad, gratuito y de código abierto para Python." Expande la funcionalidad de paquetes de Python como NumPy, SciPy, Matplotlib y Pandas.

image-15
Imágenes de la galería de ejemplos de SunPy.

SpacePy

El paquete SpacePy es un "paquete de Python para las ciencias espaciales cuya meta es facilitar el análisis, modelado y visualización de datos."

Según su documentación oficial:

El proyecto SpacePy busca promover estándares de investigación precisos y abiertos al proveer un ambiente abierto para el desarrollo de código.

Cita original en inglés:

The SpacePy project seeks to promote accurate and open research standards by providing an open environment for code development.

De acuerdo a la descripción en su repositorio de GitHub, tiene acceso a modelos de campos magnéticos, conversión de tiempo y de coordenadas y mucho más.

🔹 Otras aplicaciones

Python también puede ser aplicado en muchas otras áreas, incluyendo:

  • Robótica: Python puede ser usado para programar robots. Una librería escrita para este propósito es pybotics, un "conjunto de herramientas de código abierto para cinemática y calibración de robots."
  • Vehículos autónomos: Python puede ser usado para programar el software que controla vehículos autónomos. Estos vehículos necesitan visión por computadora para "ver" dónde están conduciendo, dónde está el carril y qué objetos los rodean.
  • Meteorología: el paquete climate-indices "contiene implementaciones en Python de varios algoritmos de índices del clima que proveen una imagen geográfica y temporal de la severidad de las precipitaciones y de anomalías de la temperatura que son útiles para monitorear e investigar el clima."
  • Negocios: Python puede ser una herramienta poderosa para analizar datos generados por negocios y para predecir tendencias.
  • Desarrollo de Interfaz Gráfica de Usuario: Python puede ser usado para crear una interfaz gráfica de usuario con herramientas como tkinter.
  • Si quieres aprender más sobre este tema, freeCodeCamp tiene un tutorial en YouTube: Tkinter Course - Create Graphic User Interfaces in Python Tutorial.

🔸 En resumen

Existen muchas aplicaciones de Python en todas las áreas que puedes imaginar. Espero que este artículo te haya dado una idea del amplio rango de aplicaciones en la vida real de este lenguaje de programación en industrias que actualmente están moldeando nuestro mundo.

Recuerda que sin importar el área o campo en el que estás o en el cual quieres estar en el futuro, aprender Python definitivamente te abrirá muchas puertas y oportunidades. Python está aquí para quedarse. Ha transformado y mejorado nuestro mundo y continuará haciéndolo por muchos años.

Sinceramente espero que te haya gustado mi artículo y que te haya sido de utilidad. Te invito a seguirme en Twitter (@EstefaniaCassN). ⭐️