Accueil > Blog > Développement > Que peut-on faire avec Python ?

Que peut-on faire avec Python ? 3 applications de Python

par | 9 Nov 2019 | 0 commentaires

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

« Pourquoi devrais-je utiliser Python? »

C’est une question plutôt délicate, car il existe de nombreuses applications pour Python.

Python permet de faire des choses vraiment incroyables, mais si l’on peut catégoriser ces utilisations en 3 grandes catégories, ce serait :

  • Développement web
  • Data Science – incluant le machine learning, l’analyse de données ainsi que la visualisation de données
  • Scripting

Évaluons ces 3 catégories à tour de rôle.

Développement web

Il y a peu de temps, le développement web avec Python était assez anecdotique, voire inexistant. Mais maintenant les frameworks web basés sur Python comme Django et Flask sont récemment devenus très populaires pour le développement web.

Ces infrastructures 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 à celui qui s’exécute sur nos appareils et navigateur (code frontend). Si vous n’êtes pas très familier avec la différence entre le backend et le frontend, vous pouvez lire cet article sur le sujet.

Mais pourquoi aurais-je besoin d’un framework web?

Pour faire simple, un framework web facilite la création d’une architecture commune côté serveur. Cela comprend le mappage de différentes URL sur des fragments de code Python, le traitement de la base de données et la génération de fichiers HTML vus par les utilisateurs dans leurs navigateurs.

Quel framework web Python dois-je utiliser?

Django et Flask sont deux des frameworks web Python extrêmement populaires. Je vous recommande d’utiliser l’un d’eux si vous commencez tout juste.

Quelle est la différence entre Django et Flask?

Je ne vais pas rentrer dans les détails de ces deux frameworks. Internet regorge de ressources très complètes à ce sujet, mais je reprendrais la citation d’un excellent article sur ce sujet :

Principaux contrastes:

1. Flask offre la simplicité, flexibilité et un excellent contrôle. Il vous permet d’intégrer vos fonctionnalités sans vous contraindre à un formalisme.

2. Django fournit une expérience complète : vous générerez 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 vos projets directement prêts à l’emploi.

Vous pourriez choisir :

1. Flask, si vous vous concentrez sur l’expérience utilisateur et les possibilités d’apprentissage, ou si vous souhaitez davantage de contrôle sur les composants à utiliser (telles que les bases de données que vous souhaitez utiliser et la façon dont vous souhaitez interagir avec elles).

2. Django, si vous êtes concentré sur le produit final. Surtout si vous travaillez sur une application simple, telle qu’un site d’actualités, un magasin en ligne ou un blog, et que vous voulez qu’il y ait toujours une façon unique et évidente de faire les choses.

En d’autres termes, si vous êtes débutant, Flask est probablement un meilleur choix car il comporte moins de composants. Flask est également un meilleur choix si vous souhaitez davantage de personnalisation.

D’un autre côté, si vous souhaitez construire quelque chose de simple, Django vous permettra probablement de vous y rendre plus rapidement.

Maintenant, si vous cherchez à apprendre Django, le livre intitulé « Django for Beginners » est une excellente entrée en matière. Vous pouvez le trouver ici .

Data Science – Machine Learning, analyse de données et data visualization

Tout d’abord, commençons par expliquer le machine learning « avé les mains ».

La meilleure façon d’expliquer le machine learning est de vous donner un exemple très simple.

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

Donc, étant donné cette image ci-dessous, vous voulez que votre programme reconnaisse ce qu’est un chien.

Et connaissant cet autre élément ci-dessous, vous voulez que ce même 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, si la photo contient beaucoup de pixels marron clair, on peut dire que c’est probablement un chien.

Ou peut-être pouvez-vous comprendre comment détecter les contours d’une image. Ensuite, vous pourriez dire, s’il y a beaucoup de lignes droites, alors c’est probablement une table.

Cependant, ce genre d’approche devient assez complexe. Et s’il y a un chien aux poils blancs et non marrons sur la photo ? Et si la photo ne montre que les parties rondes de la table ?

C’est là que commence le machine learning.

Le machine learning (ou apprentissage automatique), c’est l’art de développer des programmes qui répondent à des problèmes sans jamais avoir été programmé explicitement.

Pour expliquer cela très très simplement, vous pouvez donner, par exemple, 1 000 images d’un chien et 1 000 images d’une table à un algorithme de machine learning. Ensuite, il va « apprendre » la différence entre un chien et une table. Lorsque vous lui donnez une nouvelle image d’un chien ou d’une table, il devra être capable de reconnaître s’il s’agit plutôt d’un chien ou plutôt d’une table.

Cela ressemble un peu à la façon dont un bébé apprend de nouvelles choses. Comment un bébé apprend-il si une chose ressemble à un chien et une autre à une table? Probablement à partir d’une somme d’exemples issues de ses multiples expériences.

Vous ne dites probablement pas explicitement à un bébé: « Si quelque chose est poilu et est a une truffe et des grandes canines, c’est sûrement un chien. »

Vous diriez probablement simplement: « Ça, c’est un chien. Ça aussi. Et ça, c’est une table. Ça aussi, c’est une table. « 

Les algorithmes de machine learning marchent à peu près de la même manière. Entraîner une algorithme sur une base de connaissances pour qu’il puisse nous proposer une fonction « magique » qui évalue de nouveaux cas.

Aujourd’hui, nous sommes entourés d’algorithmes de machine learning :

  • systèmes de recommandation (pensez à YouTube, Amazon et Netflix qui vous proposent les meilleurs produits ou contenus)
  • reconnaissance faciale de visage
  • reconnaissance vocale
  • synthèse vocale
  • traduction automatique.

Les algorithmes de machine learning dont vous avez peut-être entendu parler incluent :

  • Les réseaux neuronaux
  • Le deep learning (ou apprentissage profond)
  • SVM – Support Vector Machine
  • Random forest (ou forêt d’arbres décisionnels)

Vous pouvez utiliser n’importe lequel des algorithmes ci-dessus pour résoudre ce problème de tagging d’image de chien et de table par exemple.

Python pour le machine learning

Il existe de nombreux frameworks et de nombreuses bibliothèques de machine learning en Python.

Scikit-learn et TensorFlow sont parmi les plus populaires :

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

Si vous commencez tout juste avec un projet de machine learning, je vous recommande de commencer par scikit-learn. Si vous commencez à avoir des problèmes d’efficacité, je commencerais par regarder dans TensorFlow.

Comment devrais-je apprendre le machine learning ?

Pour apprendre les bases de machine learning, je recommanderais le cours de machine learning de Stanford disponible sur Coursera gratuitement ou alors celui de Caltech .

Veuillez noter que vous devez posséder des connaissances en algèbre linéaire pour comprendre certains éléments de ces cours.

Ensuite, une excellente manière de mettre en pratique tout ça est de participer à des projets Kaggle. C’est un site web où personnes tentent de proposer les meilleurs algorithme de machine learning pour un problème donné. Les projets proposés sont vraiment intéressants et des prix sont remis aux meilleurs data scientists. Certains de ces projets ont une portée sociale et ils ont aussi de bons tutoriels pour les débutants. Alors ,allez-y, foncez !

Enfin sans nous faire trop de publicité, on propose des formations en machine learning, que ce soit pour débutants ou pour les plus avancés.

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

Pour vous aider à comprendre à quoi cela pourrait ressembler, laissez-moi 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 pourriez dessiner un graphique à barres comme celui-ci.

Ce graphique montre que les hommes ont acheté plus de 400 unités de ce produit et les femmes environ 350 unités de ce produit ce dimanche.

En tant qu’analyste de données, vous pouvez proposer quelques explications possibles à cette différence.

Une explication possible est que ce produit est plus populaire chez les hommes que chez les 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 une autre explication possible pourrait être que les hommes ont tendance à acheter ce produit plus seulement 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 pour le dimanche uniquement, nous examinons les données pour une semaine complète. Comme vous pouvez le voir sur 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 chez les hommes que chez les femmes.

D’autre part, si vous voyez un graphique comme celui-ci à la place?

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

Vous pourriez dire, peut-être que les hommes ont tendance à acheter davantage de ce produit uniquement le dimanche pour une raison quelconque. Ou peut-être était-ce simplement une coïncidence que les hommes en achètent davantage le dimanche.

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

Pour faire cela dans le monde réel, on va avoir besoin d’intéroger une base de données à l’aide d’un langage SQL ou d’un ORM Python, puis de visualiser et analyser ces données à l’aide Matplotlib ou Plotly par exemple.

Analyse / visualisation de données avec Python

Matplotlib est l’une des bibliothèques les plus populaires pour la visualisation des données.

C’est une bonne bibliothèque pour commencer avec parce que:

  • Elle est facile à prendre en main
  • De nombreuses bibliothèques sont basées sur cette dernière, comme Seaborn. Donc, apprendre Matplotlib vous aidera à apprendre ces autres bibliothèques par la suite.

Comment apprendre l’analyse et la visualisation de données avec Python?

Vous devez d’abord apprendre les bases de l’analyse et de la visualisation des données. J’ai suivi un cours complet sur ce sujet sur Coursera , que vous pouvez suivre gratuitement en vous inscrivant à leur essai gratuit de 10 jours.

Scripting

Qu’est-ce qu’un script?

L’écriture de scripts fait généralement référence à l’écriture de petits programmes conçus pour automatiser des tâches simples. Un script, c’est un mot balise pour dire petit bout de programme écrit un peu comme ça au fil de l’eau pour automatiser des tâches rébarbatives.

C’est un programme alors ? Oui, mais la frontière n’est pas vraiment bien définie. Parmi des exemples de scripts courants, on peut citer :

  • Le tri automatique de mails
  • La manipulation de fichiers (renommage, nettoyage, …)
  • La modification d’images (trims, filtres, …)

Ruby, Bash, Perl ou encore Python sont autant de langages qui se prêtent particulièrement à cette utilisation. L’utilsiation de Python en tant que langage de scripting s’est répandue depuis que Python est installé par défaut sur la plupart des distributions Linux de nos jours.

Qu’en est-il des programmes embarqués ?

Je ne suis pas un expert des programmes embarqués, mais je sais que Python fonctionne très bien sur Rasberry Pi. Cela semble être une application populaire parmi les amateurs de matériel. Mais d’autres langages comme le C ou le C++ sont beaucoup plus populaires pour ce type d’application.

Qu’en est-il des 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 sur le marché. Vous pouvez l’utiliser pour créer un projet de loisir, mais personnellement, je ne le choisirais pas si vous tenez vraiment au développement de jeux.

Je recommanderais plutôt de commencer à utiliser Unity avec C #, 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 ou PyQt, mais cela ne semble pas non plus être le choix le plus populaire.

Au lieu de cela, il semble que les langages comme Java, C # et C ++ sont 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é construite 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’utiliserais une option JavaScript. Il vous permet de réutiliser une partie du code d’une version Web si vous en avez.

Python 3 ou Python 2?

Il y a assez peu de temps, Python 2 restait très populaire. Maintenant, je recommanderais Python 3, car il est plus moderne et constitue une option plus populaire à ce stade de développement. De plus, Python 2 ne sera plus maintenu fin 2019, donc ce n’est plus vraiment un choix ;).

Cet article est basé sur la publication en anglais de freeCodeCamp disponible sur le site Medium.

Valentin Biasi

Valentin Biasi

Président fondateur

Data Scientist et ingénieur Machine Learning avec des compétences complémentaires en Data Engineering et en développement Python.

Après avoir finalisé mon doctorat en 2014, j’ai travaillé en recherche appliquée sur des méthodes de machine learning et de deep learning pour le compte de grands industriels du secteur aéronautique. Depuis mi-2019, je suis travailleur freelance et je suis totalement dédié à aider mes clients à développer leurs projets de science des données.

Popular Posts

Les 15 métriques DevOps que les entreprises doivent surveiller

Les 15 métriques DevOps que les entreprises doivent surveiller

Le DevOps s'est imposé dans la plupart des entreprises comme une stratégie pour livrer en continue des logiciels. Aujourd'hui, la stratégie DevOps est largement considéré comme un élément essentiel du processus de développement. Oui mais comment utiliser les métriques...

Explications simples : C’est quoi une API ?

Explications simples : C’est quoi une API ?

Pour la plupart des personnes, API ressemble plus à un type de bière qu'à un outil informatique. Pour le reste des personnes, une API, c'est "un truc qui sert à faire communiquer deux machins". Introduction J'exagère bien sûr mais je me suis rendu compte qu'assez peu...