Tour d’horizon des framework à connaître pour la Data Science

Un petit tour d’horizon des outils (librairies, framework, modules) disponibles, utilisées et intéressantes à utiliser lorsqu’on travaille avec les data.

pandas

Cet outil est l’un des plus connus pour structurer et manipuler les données facilement.

C’est aussi utilisé pour préparer les données. Cela permet, par exemple, les pivots dans les datasets, personnaliser les indexes, manipuler des sous-ensembles de données, des opérations de merge ou join sans perdre en performance, des fonctions sur les Time Series, etc.

Super tuto : 10 minutes to pandas

matplotlib

Pour visualiser des données à travers des graphiques (histogrammes, line plots, heat plots, etc) et quelques fonctionnalités pour la 3D.

Ce package Python est extrêmement puissant et complet pour la visualisation des données avec de nombreuses possibilités de personnalisations. Par exemple, lorsqu’on cherche les corrélations entre variables, les valeurs aberrantes avec un scatter plot, la distribution, etc.

NumPy

Indispensable pour manipuler des matrices avec ses tableaux multi-dimensionnels et les opérations qui vont avec, quelques fonctions mathématiques (génération de nombres aléatoires, algèbre linéaire, etc).

Le package Python est installé d’office dans des plateformes de Machine Learning. Sans parler des possibilités d’intégration du C.

scikit Learn

Des outils et algos pour de l’apprentissage automatique, du Machine Learning (classification, regression, clustering, dimensionality reduction).

scikit-image

Des algos pour le traitement d’images. Par exemple, filtrer, transformer, etc.

SciPy

Se base sur Numpy et profite ainsi de la gestion facilité des matrices. Il s’agit d’un environnement complet pour le travail scientifique des données (traitement de signal, optimisation, statistiques, etc).

Statsmodels

Se base sur Pandas et sert à de l’analyse statistique. Le module permet d’explorer les données.

Seaborn

Sur matplotib mais la lib est orientée statistiques. Pour présenter des représenter, explorer et comprendre les données. Idéal pour étudier les relations entre plusieurs variables.

Scrapy

Pour du web crawling. Un framework qui va permettre de parcourir la structure d’une page web à partir d’une url, récupérer les données et ainsi permettre de les exploiter. Bien sûr, c’est à utiliser dans le cas où il n’y a pas d’API et dans le respect des règles, du nombre de requêtes autorisées, etc.

Requests

Similaire à la lib urllib2, le module requests est un outil qui mise sur la simplicité pour requêter des pages.

IPython

Propose un environnement solide pour le monde scientifique. C’est-à-dire pour des calculs. Il accèlère et simplifie l’écriture du code via son interactivité (grâce à une console intégrée avec interface graphique).

Jupyter

Facilite l’écriture du code de manière interactive grâce à une console et le partage. Avec les extensions, il est rendu facile de partager un notebook avec de la documentation en Markdown, forcer le formatager du code automatiquement en pep8, etc.

Keras

Au niveau des principaux outils pour le Machine Learning (Pytorch, Tensorflow), Keras est le plus simple à prendre en main. Qui dit efficace, dit moins flexible.

PyTorch

Aussi une lib pour le machine learning, Pytorch est plus flexible que Keras mais moins simple qu’un frmework comme TensorFlow.

FastAI

Lib basée sur PyTorch.

« fastai is the first deep learning library to provide a single consistent interface to all the most commonly used deep learning applications for vision, text, tabular data, time series, and collaborative filtering. This is important for practitioners, because it means if you’ve learned to create practical computer vision models with fastai, then you can use the same approach to create natural language processing (NLP) models, or any of the other types of model we support. » Source

PyBrain

Un autre module pour du Machine Learning.

Tensorflow

À la base pour du calcul numérique, il évolue beaucoup pour prendre de plus en plus de place et être une solution pour du Deep Learning. Par exemple, de la reconnaissance d’image, analyse de vidéos, de textes, de Time series, etc.

NLTK

Pour le traitement automatique des langues. Par exemple, de la classification, de l’étiquetage de corpus, extraction des mots clés, résumés, etc.

numpydoc

Outil indispensable s’il en est, il permet de documenter du code Python scientifique.

PyQT

Un module pour simplifier le développement d’interfaces.

OpenCV

Pour faire du calcul en temps réel. Par exemple, analyses et détection d’objet dans une vidéo en temps réel.