Dans cet article, nous examinerons certaines des bibliothèques Python pour des tâches de Data Science autres que celles couramment utilisées, telles que les pandas, scikit-learn et matplotlib. Bien que des bibliothèques telles que pandas et scikit-learn soient celles qui viennent à l’esprit pour les tâches Machine Learning, il est toujours bon de se renseigner sur les autres offres Python dans ce domaine.

Python est un langage incroyable. En fait, c’est l’un des langages de programmation qui a la croissance la plus rapide au monde. Il a maintes fois prouvé son utilité à la fois dans les rôles de développeur web, data scientist ou développeur logiciel. L’ensemble de l’écosystème de Python et de ses bibliothèques en fait un choix judicieux pour les utilisateurs (débutants et avancés). L’une des raisons de son succès et de sa popularité est son ensemble de bibliothèques robustes qui le rendent si dynamique et rapide.

1. Wget

Extraire des données, en particulier à partir du Web, est l’une des tâches essentielles du data scientist. Wget est un utilitaire gratuit pour le téléchargement non interactif de fichiers à partir du Web. Il prend en charge les protocoles HTTP, HTTPS et FTP, ainsi que la récupération via des proxies HTTP. Comme il n’est pas interactif, il peut fonctionner en arrière-plan même si l’utilisateur n’est pas connecté. Ainsi, lors du prochain téléchargement d’un site Web ou de toutes les images d’une page, wget sera là pour vous aider.

Installation

via pip: $ pip install wget

via Anaconda: $ conda install -c anaconda wget

Exemple

import wget   

url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'


filename = wget.download(url)   

100% [................................................] 3841532 / 3841532


filename   
'razorback.mp3'

 

2. Pendulum

Pendulum est là pour les personnes frustrées lorsqu’elles travaillent avec les dates. C’est un paquet Python pour faciliter les manipulations datetime. C’est un remplacement instantané de la classe native de Python. Reportez-vous à la documentation pour obtenir des informations détaillées.

Installation

via pip: $ pip install pendulum

via Anaconda: $ conda install -c conda-forge pendulum

Exemple

import pendulum

dt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')

print(dt_vancouver.diff(dt_toronto).in_hours())

 

3. Imbalanced-learn

La plupart des algorithmes de classification fonctionnent mieux lorsque le nombre d’échantillons dans chaque classe est presque identique (c’est-à-dire qu’il est équilibré). Mais les cas réels sont remplis de datasets déséquilibrés, qui peuvent influer sur la phase d’apprentissage et sur la prédiction ultérieure d’algorithmes de Machine Learning. Heureusement, la bibliothèque imbalanced-learn a été créée pour résoudre ce problème. Il est compatible avec scikit-learn et fait partie des projets scikit-learn-contrib. Essayez-le la prochaine fois que vous rencontrerez des datasets déséquilibrés.

Installation

via pip: $ pip install -U imbalanced-learn

via Anaconda: $ conda install -c conda-forge imbalanced-learn

Exemple

Pour l’appliquer et voir des exemples, reportez-vous à la documentation.

 

4. FlashText

Nettoyer les données de texte lors des tâches de traitement du langage naturel (NLP) nécessite souvent le remplacement de mots-clés ou l’extraction de mots-clés à partir de phrases. Généralement, de telles opérations peuvent être accomplies avec des expressions régulières, mais elles peuvent devenir lourdes si le nombre de termes à rechercher atteint des milliers.

Le module FlashText de Python, basé sur l’algorithme FlashText, offre une alternative intéressante pour de telles situations. La meilleure partie de FlashText est que le runtime est le même quel que soit le nombre de termes de recherche. Vous pouvez en savoir plus à ce sujet dans la documentation.

Installation

via pip: $ pip install flashtext

Exemples

Extraire des mots-clé:
from flashtext import KeywordProcessor   

keyword_processor = KeywordProcessor()

# keyword_processor.add_keyword(, )


keyword_processor.add_keyword('Big Apple', 'New York')   

keyword_processor.add_keyword('Bay Area')   

keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')


keywords_found   
['New York', 'Bay Area']
Remplacer des mots-clé:
keyword_processor.add_keyword('New Delhi', 'NCR region')

new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')


new_sentence   
'I love New York and NCR region.'

Pour plus d’exemples, reportez-vous à la section à la documentation.

 

5. FuzzyWuzzy

Le nom semble étrange, mais FuzzyWuzzy est une bibliothèque très utile pour la correspondance de chaînes. Il peut facilement implémenter des opérations telles que les ratios de comparaison de chaînes, les ratios de tokens, etc. Il est également utile pour faire correspondre les enregistrements conservés dans différentes bases de données.

Installation

via pip: $ pip install fuzzywuzzy

via Anaconda: $ conda install -c conda-forge fuzzywuzzy

Exemple

from fuzzywuzzy import fuzz   
from fuzzywuzzy import process

# Ratio simple


fuzz.ratio("Ceci est un test", "Ceci est un test!")   
97


# Ratio partiel 

fuzz.partial_ratio("Ceci est un test", "Ceci est un test!")   
100

D’autres exemples sont disponibles dans le repo GitHub de FuzzyWuzzy.

 

6. PyFlux

L’analyse chronologique (Time-series) est l’un des problèmes les plus fréquemment rencontrés dans le Machine Learning. PyFlux est une bibliothèque open source en Python explicitement conçue pour traiter des problèmes chronologiques. La bibliothèque propose une excellente gamme de modèles de séries temporelles modernes, notamment les modèles ARIMA, GARCH et VAR. En résumé, PyFlux propose une approche probabiliste de la modélisation de séries chronologiques. Cela vaut la peine d’essayer.

Installation

via pip: $ pip install pyflux

Exemple

Veuillez vous référer à la documentation pour des usages et  des exemples.

 

7. IPyvolume

La communication des résultats est un aspect essentiel de la Data Science et la visualisation des résultats offre un avantage significatif. IPyvolume est une bibliothèque Python permettant de visualiser des volumes et des glyphes 3D (par exemple, des diagrammes de dispersion 3D) dans le Jupyter notebook avec une configuration et des efforts minimes. Cependant, il est actuellement dans la phase antérieure à 1.0. Une bonne analogie serait quelque chose comme ceci: le volshow d’IPyvolume est destiné aux tableaux 3D ce que l’imshow de matplotlib est destiné aux tableaux 2D. Vous pouvez en savoir plus à ce sujet dans la documentation.

Installation

via pip: $ pip install ipyvolume

via Anaconda: $ conda install -c conda-forge ipyvolume

Exemples

Animation:

Animation IPyvolume

Rendu de volume:

Rendu de volume IPyvolume

 

8. Dash

Dash est un framework Python productif pour la construction d’applications Web. Il est écrit avec Flask, Plotly.js et React.js et lie des éléments d’interface utilisateur modernes tels que des menus déroulants, des curseurs et des graphiques à votre code Python analytique sans recourir à JavaScript. Dash convient parfaitement à la création d’applications de visualisation de données pouvant être affichées dans le navigateur Web. Consultez le guide d’utilisation pour plus de détails.

Installation

pip install dash==0.29.0  # The core dash backend   

pip install dash-html-components==0.13.2  # HTML components   

pip install dash-core-components==0.36.0  # Supercharged components   

pip install dash-table==3.1.3  # Interactive DataTable component (new!)

exemple

L’exemple suivant montre un graphique interactif avec des fonctionnalités de liste déroulante. Lorsque l’utilisateur sélectionne une valeur dans la liste déroulante, le code de l’application exporte de manière dynamique les données de Google Finance dans un DataFrame Pandas.

Dash Animation

 

9. Gym

Gym de OpenAI est une boîte à outils permettant de développer et de comparer des algorithmes d’apprentissage par renforcement. Il est compatible avec toutes les bibliothèques de calcul numériques, telles que TensorFlow ou Theano. La bibliothèque Gym est une collection de problèmes de test, également appelés environnements, que vous pouvez utiliser pour élaborer vos algorithmes d’apprentissage par renforcement. Ces environnements ont une interface partagée, ce qui vous permet d’écrire des algorithmes généraux.

Installation

via pip: $ pip install gym

via Anaconda: $ conda install -c akode gym

Exemple

Voici quelques environnements possibles sur le site gym.

 

Conclusion

Ce sont mes choix pour des bibliothèques Python utiles, mais peu connues, pour la Data Science. Si vous en connaissez d’autres à ajouter à cette liste, veuillez les mentionner dans les commentaires ci-dessous.