¿Qué puedes hacer exactamente con Python? Aquí están las 3 aplicaciones principales de Python.

Si está pensando en aprender Python, o si comenzó a aprenderlo recientemente, es posible que se esté preguntando:

"¿Para qué puedo usar Python exactamente?"

Bueno, esa es una pregunta difícil de responder, porque hay muchas aplicaciones para Python.

Pero con el tiempo, he observado que hay 3 aplicaciones populares principales para Python:

  • Desarrollo web
  • Ciencia de datos, incluido el aprendizaje automático, el análisis de datos y la visualización de datos
  • Scripting

Hablemos de cada uno de ellos.

Desarrollo web

Los marcos web que se basan en Python como Django y Flask se han vuelto muy populares para el desarrollo web.

Estos marcos web lo ayudan a crear código del lado del servidor (código backend) en Python. Ese es el código que se ejecuta en su servidor, a diferencia de en los dispositivos y navegadores de los usuarios (código de front-end). Si no está familiarizado con la diferencia entre el código de backend y el código de front-end, consulte mi nota a pie de página a continuación.

Pero espera, ¿por qué necesito un marco web?

Esto se debe a que un marco web facilita la creación de una lógica de backend común. Esto incluye mapear diferentes URL a fragmentos de código Python, manejar bases de datos y generar archivos HTML que los usuarios ven en sus navegadores.

¿Qué marco web de Python debo usar?

Django y Flask son dos de los frameworks web de Python más populares. Recomiendo usar uno de ellos si recién está comenzando.

¿Cuál es la diferencia entre Django y Flask?

Hay un excelente artículo sobre este tema de Gareth Dwyer, así que permítanme citarlo aquí:

te>

Principales contrastes:

  • Matraz proporciona simplicidad, flexibilidad y un control detallado. No tiene ningún criterio (te permite decidir cómo quieres implementar las cosas).
  • Django proporciona una experiencia que lo incluye todo: obtienes un panel de administración, interfaces de base de datos, un ORM [mapeo relacional de objetos] y una estructura de directorios para tus aplicaciones y proyectos listos para usar.

Probablemente deberías elegir:

  • Frasco, si está enfocado en la experiencia y las oportunidades de aprendizaje, o si desea tener más control sobre qué componentes usar (como qué bases de datos desea usar y cómo desea interactuar con ellos).
  • Django, si estás enfocado en el producto final. Especialmente si está trabajando en una aplicación sencilla, como un sitio de noticias, una tienda electrónica o un blog, y desea que siempre haya una forma única y obvia de hacer las cosas.

te>

En otras palabras, si eres un principiante, Flask es probablemente una mejor opción porque tiene menos componentes con los que lidiar. Además, Flask es una mejor opción si desea más personalización.

Por otro lado, si está buscando construir algo sencillo, Django probablemente le permitirá llegar más rápido.

Ahora, si está buscando aprender Django, le recomiendo el libro llamado Django para principiantes. Lo puedes encontrar aquí.

También puede encontrar los capítulos de muestra gratuitos de ese libro aquí.

Bien, ¡pasemos al siguiente tema!

Ciencia de datos, incluido el aprendizaje automático, el análisis de datos y la visualización de datos

En primer lugar, repasemos qué es el aprendizaje automático .

Creo que la mejor forma de explicar qué es el aprendizaje automático sería darte un ejemplo sencillo.

Supongamos que desea desarrollar un programa que detecte automáticamente lo que hay en una imagen.

Entonces, dada esta imagen a continuación (Imagen 1), desea que su programa reconozca que es un perro.

Original text


Dado este otro a continuación (Imagen 2), desea que su programa reconozca que es una mesa.

Podrías decir, bueno, puedo escribir un código para hacer eso. Por ejemplo, quizás si hay muchos píxeles de color marrón claro en la imagen, entonces podemos decir que es un perro.

O tal vez, puede descubrir cómo detectar bordes en una imagen. Entonces, podría decir, si hay muchos bordes rectos, entonces es una mesa.

Sin embargo, este tipo de enfoque se vuelve complicado con bastante rapidez. ¿Qué pasa si hay un perro blanco en la imagen sin cabello castaño? ¿Qué pasa si la imagen muestra solo las partes redondas de la mesa?

Aquí es donde entra el aprendizaje automático.

El aprendizaje automático generalmente implementa un algoritmo que detecta automáticamente un patrón en la entrada dada.

Puede dar, digamos, 1,000 imágenes de un perro y 1,000 imágenes de una mesa a un algoritmo de aprendizaje automático. Luego, aprenderá la diferencia entre un perro y una mesa. Cuando le dé una nueva imagen de un perro o una mesa, podrá reconocer cuál es.

Creo que esto es algo similar a cómo un bebé aprende cosas nuevas. ¿Cómo aprende un bebé que una cosa se parece a un perro y otra a una mesa? Probablemente a partir de un montón de ejemplos.

Probablemente no le digas explícitamente a un bebé: "Si algo es peludo y tiene el pelo castaño claro, probablemente sea un perro".

Probablemente diría simplemente: “Eso es un perro. Este también es un perro. Y esta es una mesa. Esa también es una mesa ".

Los algoritmos de aprendizaje automático funcionan de la misma manera.

Puedes aplicar la misma idea a:

  • sistemas de recomendación (piense en YouTube, Amazon y Netflix)
  • Reconocimiento facial
  • reconocimiento de voz

entre otras aplicaciones.

Los algoritmos populares de aprendizaje automático de los que quizás haya oído hablar incluyen:

  • Redes neuronales
  • Aprendizaje profundo
  • Máquinas de vectores de soporte
  • Bosque aleatorio

Puede utilizar cualquiera de los algoritmos anteriores para resolver el problema de etiquetado de imágenes que expliqué anteriormente.

Python para aprendizaje automático

Existen bibliotecas y marcos de aprendizaje automático populares para Python.

Dos de los más populares son scikit-learn y TensorFlow .

  • scikit-learn viene con algunos de los algoritmos de aprendizaje automático más populares integrados. Mencioné algunos de ellos arriba.
  • TensorFlow es más una biblioteca de bajo nivel que le permite crear algoritmos personalizados de aprendizaje automático.

Si recién está comenzando con un proyecto de aprendizaje automático, le recomendaría que primero comience con scikit-learn. Si comienza a tener problemas de eficiencia, entonces comenzaría a buscar en TensorFlow.

¿Cómo debo aprender el aprendizaje automático?

Para aprender los fundamentos del aprendizaje automático, recomendaría el curso de aprendizaje automático de Stanford o Caltech.

Tenga en cuenta que necesita conocimientos básicos de cálculo y álgebra lineal para comprender algunos de los materiales de esos cursos.

Luego, practicaría lo que has aprendido en uno de esos cursos con Kaggle. Es un sitio web donde las personas compiten para construir el mejor algoritmo de aprendizaje automático para un problema determinado. También tienen buenos tutoriales para principiantes.

¿Qué pasa con el análisis de datos y la visualización de datos?

Para ayudarlo a comprender cómo podrían verse, permítame darle un ejemplo simple aquí.

Supongamos que trabaja para una empresa que vende algunos productos en línea.

Luego, como analista de datos, puede dibujar un gráfico de barras como este.

De este gráfico, podemos decir que los hombres compraron más de 400 unidades de este producto y las mujeres compraron alrededor de 350 unidades de este producto este domingo en particular.

Como analista de datos, es posible que se le ocurran algunas posibles explicaciones para esta diferencia.

Una posible explicación obvia es que este producto es más popular entre los hombres que entre las mujeres. Otra posible explicación podría ser que el tamaño de la muestra es demasiado pequeño y esta diferencia se debe simplemente al azar. Y otra posible explicación podría ser que los hombres tienden a comprar más este producto solo los domingos por alguna razón.

Para comprender cuál de estas explicaciones es correcta, puede dibujar otro gráfico como este.

En lugar de mostrar los datos del domingo únicamente, estamos viendo los datos de una semana completa. Como puede ver, en este gráfico, podemos ver que esta diferencia es bastante constante en diferentes días.

De este pequeño análisis, podría concluir que la explicación más convincente de esta diferencia es que este producto es simplemente más popular entre los hombres que entre las mujeres.

Por otro lado, ¿qué pasa si ves un gráfico como este?

Entonces, ¿qué explica la diferencia el domingo?

Se podría decir que quizás los hombres tienden a comprar más de este producto solo los domingos por alguna razón. O tal vez fue solo una coincidencia que los hombres compraran más el domingo.

Entonces, este es un ejemplo simplificado de cómo se vería el análisis de datos en el mundo real.

El trabajo de análisis de datos que hice cuando trabajaba en Google y Microsoft fue muy similar a este ejemplo, solo que más complejo. De hecho, usé Python en Google para este tipo de análisis, mientras que usé JavaScript en Microsoft.

Usé SQL en ambas empresas para extraer datos de nuestras bases de datos. Luego, usaría Python y Matplotlib (en Google) o JavaScript y D3.js (en Microsoft) para visualizar y analizar estos datos.

Análisis / visualización de datos con Python

Una de las bibliotecas más populares para la visualización de datos es Matplotlib.

Es una buena biblioteca para empezar porque:

  • Es fácil comenzar con
  • Algunas otras bibliotecas como seaborn se basan en él. Por lo tanto, aprender Matplotlib lo ayudará a aprender estas otras bibliotecas más adelante.

¿Cómo debo aprender a analizar / visualizar datos con Python?

Primero debe aprender los fundamentos del análisis y visualización de datos. Cuando busqué buenos recursos para esto en línea, no pude encontrar ninguno. Entonces, terminé haciendo un video de YouTube sobre este tema:

También terminé haciendo un curso completo sobre este tema en Pluralsight, que puede tomar de forma gratuita registrándose en su prueba gratuita de 10 días.

Los recomendaría a los dos.

Después de aprender los fundamentos del análisis y la visualización de datos, también será útil aprender los fundamentos de las estadísticas de sitios web como Coursera y Khan Academy.

Scripting

¿Qué es un script?

Las secuencias de comandos generalmente se refieren a la escritura de pequeños programas que están diseñados para automatizar tareas simples.

Entonces, déjeme darle un ejemplo de mi experiencia personal aquí.

Solía ​​trabajar en una pequeña startup en Japón donde teníamos un sistema de soporte por correo electrónico. Era un sistema para que respondiéramos a las preguntas que los clientes nos enviaban por correo electrónico.

Cuando trabajaba allí, tenía la tarea de contar la cantidad de correos electrónicos que contenían ciertas palabras clave para poder analizar los correos electrónicos que recibíamos.

Podríamos haberlo hecho manualmente, pero en su lugar, escribí un programa simple / script simple para automatizar esta tarea.

En realidad, usamos Ruby para esto en ese entonces, pero Python también es un buen lenguaje para este tipo de tarea. Python es adecuado para este tipo de tarea principalmente porque tiene una sintaxis relativamente simple y es fácil de escribir. También es rápido escribir algo pequeño con él y probarlo.

¿Qué pasa con las aplicaciones integradas?

No soy un experto en aplicaciones integradas, pero sé que Python funciona con Rasberry Pi. Parece una aplicación popular entre los aficionados al hardware.

¿Y los juegos?

Puede usar la biblioteca llamada PyGame para desarrollar juegos, pero no es el motor de juegos más popular que existe. Podrías usarlo para construir un proyecto de hobby, pero yo personalmente no lo elegiría si te tomas en serio el desarrollo de juegos.

Más bien, recomendaría comenzar con Unity con C #, que es uno de los motores de juegos más populares. Te permite crear un juego para muchas plataformas, incluidas Mac, Windows, iOS y Android.

¿Qué pasa con las aplicaciones de escritorio?

Podría hacer uno con Python usando Tkinter, pero tampoco parece la opción más popular.

En cambio, parece que lenguajes como Java, C # y C ++ son más populares para esto.

Recientemente, algunas empresas también han comenzado a utilizar JavaScript para crear aplicaciones de escritorio.

Por ejemplo, la aplicación de escritorio de Slack se creó con algo llamado Electron. Le permite crear aplicaciones de escritorio con JavaScript.

Personalmente, si estuviera creando una aplicación de escritorio, optaría por una opción de JavaScript. Le permite reutilizar parte del código de una versión web si lo tiene.

Sin embargo, tampoco soy un experto en aplicaciones de escritorio, así que hágamelo saber en un comentario si no está de acuerdo o está de acuerdo conmigo en esto.

Python 3 o Python 2?

Recomendaría Python 3 ya que es más moderno y es una opción más popular en este momento.

Nota al pie: una nota sobre el código de back-end frente al código de front-end (en caso de que no esté familiarizado con los términos):

Digamos que quieres hacer algo como Instagram.

Luego, deberá crear un código de front-end para cada tipo de dispositivo que desee admitir.

Puede utilizar, por ejemplo:

  • Swift para iOS
  • Java para Android
  • JavaScript para navegadores web

Cada conjunto de código se ejecutará en cada tipo de dispositivo / navegador. Este será el conjunto de código que determina cómo será el diseño de la aplicación, cómo deberían verse los botones al hacer clic en ellos, etc.

Sin embargo, aún necesitará la capacidad de almacenar información y fotos de los usuarios. Querrá almacenarlos en su servidor y no solo en los dispositivos de sus usuarios para que los seguidores de cada usuario puedan ver sus fotos.

Aquí es donde entra el código de backend / código del lado del servidor. Deberá escribir un código de backend para hacer cosas como:

  • Mantenga un registro de quién sigue a quién
  • Comprime las fotos para que no ocupen tanto espacio de almacenamiento
  • Recomendar fotos y cuentas nuevas a cada usuario en la función de descubrimiento.

Entonces, esta es la diferencia entre el código backend y el código front-end.

Por cierto, Python no es la única buena opción para escribir código del lado del servidor / backend. Hay muchas otras opciones populares, incluido Node.js, que se basa en JavaScript.

¿Le gustó este artículo? Entonces, también te puede gustar mi canal de YouTube.

Tengo un canal de YouTube de educación en programación llamado CS Dojo con más de 440.000 suscriptores, donde produzco más contenido como este artículo.

Por ejemplo, es posible que le gusten estos videos:

De todos modos, ¡muchas gracias por leer mi artículo!