Que pouvez-vous faire exactement avec Python? Voici les 3 principales applications de Python.

Si vous envisagez d'apprendre Python - ou si vous avez récemment commencé à l'apprendre - vous vous demandez peut-être:

«Pour quoi puis-je utiliser Python exactement?»

Eh bien, c'est une question délicate à répondre, car il y a tellement d'applications pour Python.

Mais au fil du temps, j'ai observé qu'il existe 3 principales applications populaires pour Python:

  • Développement web
  • Science des données - y compris l'apprentissage automatique, l'analyse des données et la visualisation des données
  • Scripting

Parlons de chacun d'eux à tour de rôle.

Développement web

Les frameworks Web basés sur Python comme Django et Flask sont récemment devenus très populaires pour le développement Web.

Ces frameworks Web vous aident à créer du code côté serveur (code backend) en Python. C'est le code qui s'exécute sur votre serveur, par opposition aux appareils et navigateurs des utilisateurs (code frontal). Si vous ne connaissez pas la différence entre le code backend et le code frontal, veuillez consulter ma note de bas de page ci-dessous.

Mais attendez, pourquoi ai-je besoin d'un framework Web?

En effet, un framework Web facilite la création d'une logique backend commune. Cela inclut le mappage de différentes URL sur des morceaux de code Python, le traitement des bases de données et la génération de fichiers HTML que les utilisateurs voient sur leurs navigateurs.

Quel framework Web Python dois-je utiliser?

Django et Flask sont deux des frameworks Web Python les plus populaires. Je vous recommande d'en utiliser un si vous ne faites que commencer.

Quelle est la différence entre Django et Flask?

Il y a un excellent article sur ce sujet par Gareth Dwyer, alors laissez-moi le citer ici:

te>

Principaux contrastes:

  • Flask offre simplicité, flexibilité et contrôle précis. Il est sans opinion (il vous permet de décider comment vous voulez mettre en œuvre les choses).
  • Django offre une expérience tout compris: vous obtenez un panneau d'administration, des interfaces de base de données, un ORM [object-relational mapping] et une structure de répertoires pour vos applications et projets prêts à l'emploi.

Vous devriez probablement choisir:

  • Flask, si vous vous concentrez sur l'expérience et les opportunités d'apprentissage, ou si vous souhaitez plus de contrôle sur les composants à utiliser (comme les bases de données que vous souhaitez utiliser et la manière dont vous souhaitez interagir avec elles).
  • Django, si vous vous concentrez sur le produit final. Surtout si vous travaillez sur une application simple, comme un site d'actualités, une boutique en ligne ou un blog, et que vous voulez qu'il y ait toujours une manière unique et évidente de faire les choses.

te>

En d'autres termes, si vous êtes un débutant, Flask est probablement un meilleur choix car il a moins de composants à gérer. En outre, Flask est un meilleur choix si vous souhaitez plus de personnalisation.

D'un autre côté, si vous cherchez à construire quelque chose de simple, Django vous permettra probablement d'y arriver plus rapidement.

Maintenant, si vous cherchez à apprendre Django, je vous recommande le livre appelé Django pour les débutants. Vous pouvez le trouver ici.

Vous pouvez également trouver les exemples de chapitres gratuits de ce livre ici.

D'accord, passons au sujet suivant!

Science des données - y compris l'apprentissage automatique, l'analyse des données et la visualisation des données

Tout d' abord, nous allons examiner ce que l' apprentissage automatique est .

Je pense que la meilleure façon d'expliquer ce qu'est l'apprentissage automatique serait de vous donner un exemple simple.

Supposons que vous souhaitiez développer un programme qui détecte automatiquement le contenu d'une image.

Donc, étant donné l'image ci-dessous (Image 1), vous voulez que votre programme reconnaisse qu'il s'agit d'un chien.

Original text


Compte tenu de cet autre ci-dessous (image 2), vous voulez que votre programme reconnaisse qu'il s'agit d'une table.

Vous pourriez dire, eh bien, je peux juste écrire du code pour le faire. Par exemple, peut-être que s'il y a beaucoup de pixels marron clair dans l'image, alors nous pouvons dire que c'est un chien.

Ou peut-être que vous pouvez comprendre comment détecter les contours d'une image. Ensuite, vous pourriez dire, s'il y a beaucoup d'arêtes droites, alors c'est une table.

Cependant, ce genre d'approche se complique assez rapidement. Et s'il y avait un chien blanc sur la photo sans cheveux bruns? Et si l'image ne montre que les parties rondes de la table?

C'est là qu'intervient l'apprentissage automatique.

L'apprentissage automatique implémente généralement un algorithme qui détecte automatiquement un modèle dans l'entrée donnée.

Vous pouvez donner, par exemple, 1 000 images d'un chien et 1 000 images d'une table à un algorithme d'apprentissage automatique. Ensuite, il apprendra la différence entre un chien et une table. Lorsque vous lui donnez une nouvelle image d'un chien ou d'une table, il sera capable de reconnaître de quel chien il s'agit.

Je pense que c'est un peu similaire à la façon dont un bébé apprend de nouvelles choses. Comment un bébé apprend-il qu'une chose ressemble à un chien et une autre à une table? Probablement à partir d'un tas d'exemples.

Vous ne dites probablement pas explicitement à un bébé: «Si quelque chose est velu et a les cheveux châtain clair, c'est probablement un chien.»

Vous diriez probablement simplement: «C'est un chien. C'est aussi un chien. Et celui-ci est une table. Celui-ci est aussi une table.

Les algorithmes d'apprentissage automatique fonctionnent à peu près de la même manière.

Vous pouvez appliquer la même idée à:

  • systèmes de recommandation (pensez YouTube, Amazon et Netflix)
  • reconnaissance de visage
  • reconnaissance vocale

entre autres applications.

Les algorithmes d'apprentissage automatique populaires dont vous avez peut-être entendu parler comprennent:

  • Les réseaux de neurones
  • L'apprentissage en profondeur
  • Soutenir les machines vectorielles
  • Forêt aléatoire

Vous pouvez utiliser l'un des algorithmes ci-dessus pour résoudre le problème d'étiquetage d'image que j'ai expliqué précédemment.

Python pour l'apprentissage automatique

Il existe des bibliothèques et des frameworks d'apprentissage automatique populaires pour Python.

Deux des plus populaires sont scikit-learn et TensorFlow .

  • scikit-learn est livré avec certains des algorithmes de machine learning intégrés les plus populaires. J'ai mentionné certains d'entre eux ci-dessus.
  • TensorFlow est davantage une bibliothèque de bas niveau qui vous permet de créer des algorithmes d'apprentissage automatique personnalisés.

Si vous ne faites que commencer avec un projet d'apprentissage automatique, je vous recommande de commencer par scikit-learn. Si vous commencez à rencontrer des problèmes d'efficacité, je commencerais à examiner TensorFlow.

Comment dois-je apprendre le machine learning?

Pour apprendre les fondamentaux de l'apprentissage automatique, je recommanderais le cours d'apprentissage automatique de Stanford ou de Caltech.

Veuillez noter que vous avez besoin de connaissances de base en calcul et en algèbre linéaire pour comprendre certains des matériaux de ces cours.

Ensuite, je mettrais en pratique ce que vous avez appris de l'un de ces cours avec Kaggle. C'est un site Web sur lequel les gens se font concurrence pour créer le meilleur algorithme d'apprentissage automatique pour un problème donné. Ils ont également de jolis tutoriels pour les débutants.

Qu'en est-il de l'analyse et de la visualisation des données?

Pour vous aider à comprendre à quoi cela pourrait ressembler, permettez-moi de vous donner un exemple simple ici.

Disons que vous travaillez pour une entreprise qui vend certains produits en ligne.

Ensuite, en tant qu'analyste de données, vous pouvez dessiner un graphique à barres comme celui-ci.

À partir de ce graphique, nous pouvons dire que les hommes ont acheté plus de 400 unités de ce produit et les femmes ont acheté environ 350 unités de ce produit ce dimanche particulier.

En tant qu'analyste de données, vous pourriez trouver quelques explications possibles à cette différence.

Une explication évidente possible est que ce produit est plus populaire auprès des hommes que des femmes. Une autre explication possible pourrait être que la taille de l'échantillon est trop petite et que cette différence est due au hasard. Et encore une autre explication possible pourrait être que les hommes ont tendance à acheter ce produit plus uniquement le dimanche pour une raison quelconque.

Pour comprendre laquelle de ces explications est correcte, vous pouvez dessiner un autre graphique comme celui-ci.

Au lieu d'afficher les données du dimanche uniquement, nous examinons les données pour une semaine complète. Comme vous pouvez le voir, à partir de ce graphique, nous pouvons voir que cette différence est assez constante sur différents jours.

De cette petite analyse, vous pourriez conclure que l'explication la plus convaincante de cette différence est que ce produit est tout simplement plus populaire auprès des hommes que des femmes.

D'un autre côté, que faire si vous voyez un graphique comme celui-ci à la place?

Alors, qu'est-ce qui explique la différence dimanche?

Vous pourriez dire que les hommes ont peut-être tendance à acheter plus de ce produit uniquement le dimanche pour une raison quelconque. Ou peut-être était-ce juste une coïncidence que les hommes en aient acheté davantage dimanche.

Il s'agit donc d'un exemple simplifié de ce à quoi l'analyse de données pourrait ressembler dans le monde réel.

Le travail d'analyse de données que j'ai effectué lorsque je travaillais chez Google et Microsoft était très similaire à cet exemple - mais en plus complexe. J'ai en fait utilisé Python chez Google pour ce type d'analyse, tandis que j'utilisais JavaScript chez Microsoft.

J'ai utilisé SQL dans ces deux sociétés pour extraire des données de nos bases de données. Ensuite, j'utiliserais Python et Matplotlib (chez Google) ou JavaScript et D3.js (chez Microsoft) pour visualiser et analyser ces données.

Analyse / visualisation de données avec Python

L'une des bibliothèques les plus populaires pour la visualisation de données est Matplotlib.

C'est une bonne bibliothèque pour commencer car:

  • Il est facile de démarrer avec
  • Certaines autres bibliothèques telles que seaborn sont basées dessus. Ainsi, l'apprentissage de Matplotlib vous aidera à apprendre ces autres bibliothèques plus tard.

Comment devrais-je apprendre l'analyse / la visualisation de données avec Python?

Vous devez d'abord apprendre les principes de base de l'analyse et de la visualisation des données. Lorsque j'ai cherché de bonnes ressources pour cela en ligne, je n'en ai trouvé aucune. Donc, j'ai fini par faire une vidéo YouTube sur ce sujet:

J'ai également fini par faire un cours complet sur ce sujet sur Pluralsight, que vous pouvez suivre gratuitement en vous inscrivant à leur essai gratuit de 10 jours.

Je recommanderais les deux.

Après avoir appris les principes de base de l'analyse et de la visualisation des données, l'apprentissage des principes de base des statistiques à partir de sites Web tels que Coursera et Khan Academy sera également utile.

Scripting

Qu'est-ce que le script?

Les scripts font généralement référence à l'écriture de petits programmes conçus pour automatiser des tâches simples.

Alors, laissez-moi vous donner un exemple de mon expérience personnelle ici.

J'avais l'habitude de travailler dans une petite startup au Japon où nous avions un système de support par e-mail. C'était un système pour nous de répondre aux questions que les clients nous ont envoyées par e-mail.

Quand j'y travaillais, j'avais la tâche de compter le nombre d'emails contenant certains mots clés afin que nous puissions analyser les e-mails que nous recevions.

Nous aurions pu le faire manuellement, mais à la place, j'ai écrit un programme simple / un script simple pour automatiser cette tâche.

En fait, nous avons utilisé Ruby pour cela à l'époque, mais Python est également un bon langage pour ce type de tâche. Python convient à ce type de tâche principalement parce qu'il a une syntaxe relativement simple et est facile à écrire. Il est également rapide d'écrire quelque chose de petit avec et de le tester.

Qu'en est-il des applications embarquées?

Je ne suis pas un expert des applications embarquées, mais je sais que Python fonctionne avec Rasberry Pi. Cela semble être une application populaire parmi les amateurs de matériel.

Et les jeux?

Vous pouvez utiliser la bibliothèque appelée PyGame pour développer des jeux, mais ce n'est pas le moteur de jeu le plus populaire. Vous pouvez l'utiliser pour créer un projet de loisir, mais personnellement, je ne le choisirais pas si vous êtes sérieux dans le développement de jeux.

Je recommanderais plutôt de commencer avec Unity avec C #, qui est l'un des moteurs de jeu les plus populaires. Il vous permet de créer un jeu pour de nombreuses plates-formes, notamment Mac, Windows, iOS et Android.

Qu'en est-il des applications de bureau?

Vous pouvez en créer un avec Python en utilisant Tkinter, mais cela ne semble pas non plus le choix le plus populaire.

Au lieu de cela, il semble que des langages comme Java, C # et C ++ soient plus populaires pour cela.

Récemment, certaines entreprises ont également commencé à utiliser JavaScript pour créer des applications de bureau.

Par exemple, l'application de bureau de Slack a été conçue avec quelque chose appelé Electron. Il vous permet de créer des applications de bureau avec JavaScript.

Personnellement, si je construisais une application de bureau, j'irais avec une option JavaScript. Il vous permet de réutiliser une partie du code d'une version Web si vous l'avez.

Cependant, je ne suis pas non plus un expert des applications de bureau, alors faites-le moi savoir dans un commentaire si vous êtes en désaccord ou en accord avec moi sur ce point.

Python 3 ou Python 2?

Je recommanderais Python 3 car il est plus moderne et c'est une option plus populaire à ce stade.

Note de bas de page: une note sur le code principal par rapport au code frontal (juste au cas où vous ne seriez pas familier avec les termes):

Disons que vous voulez créer quelque chose comme Instagram.

Ensuite, vous devez créer un code frontal pour chaque type d'appareil que vous souhaitez prendre en charge.

Vous pouvez utiliser, par exemple:

  • Swift pour iOS
  • Java pour Android
  • JavaScript pour les navigateurs Web

Chaque ensemble de code fonctionnera sur chaque type d'appareil / navigateur. Ce sera l'ensemble de code qui détermine à quoi ressemblera la mise en page de l'application, à quoi devraient ressembler les boutons lorsque vous cliquez dessus, etc.

Cependant, vous aurez toujours besoin de la possibilité de stocker les informations et les photos des utilisateurs. Vous voudrez les stocker sur votre serveur et pas seulement sur les appareils de vos utilisateurs afin que les abonnés de chaque utilisateur puissent voir ses photos.

C'est là qu'intervient le code backend / code côté serveur. Vous devrez écrire du code backend pour faire des choses comme:

  • Gardez une trace de qui suit qui
  • Compressez les photos pour qu'elles ne prennent pas autant d'espace de stockage
  • Recommander des photos et de nouveaux comptes à chaque utilisateur dans la fonction de découverte

C'est donc la différence entre le code backend et le code front-end.

À propos, Python n'est pas le seul bon choix pour écrire du code backend / côté serveur. Il existe de nombreux autres choix populaires, notamment Node.js, basé sur JavaScript.

Vous avez aimé cet article? Ensuite, vous aimerez peut-être aussi ma chaîne YouTube.

J'ai une chaîne YouTube d'éducation à la programmation appelée CS Dojo avec plus de 440 000 abonnés, où je produis plus de contenu comme cet article.

Par exemple, vous pourriez aimer ces vidéos:

Bref, merci beaucoup d'avoir lu mon article!