# Python pour la Data Science

Python s'est imposé comme la lingua franca de la data science au cours de la dernière décennie. Là où R règne encore dans certains laboratoires académiques et où MATLAB demeure incontournable dans le monde de l'ingénierie, Python a réussi le tour de force de rassembler sous un même toit les statisticiens, les ingénieurs machine learning, les chercheurs en deep learning et les ingénieurs de données. Cette convergence n'est pas le fruit du hasard : elle tient à la clarté de la syntaxe du langage, à la richesse de son écosystème et à la vitalité de sa communauté open-source.

La **stack scientifique Python** repose sur un ensemble de bibliothèques complémentaires qui forment un tout cohérent. **NumPy** en constitue le socle : il fournit le tableau multidimensionnel (`ndarray`) et les opérations vectorisées qui servent de fondation à toutes les autres bibliothèques. **Pandas** s'appuie sur NumPy pour offrir des structures de données tabulaires, expressives et puissantes, adaptées à la manipulation de données hétérogènes du monde réel. **Scikit-learn** propose une interface unifiée pour des dizaines d'algorithmes de machine learning classique, de la régression logistique aux forêts aléatoires. **PyTorch** est le cadre de référence pour le deep learning, apprécié pour sa flexibilité et son mode d'exécution dynamique. Enfin, **Xarray** étend les tableaux NumPy avec des dimensions et des coordonnées nommées, idéal pour les données scientifiques multidimensionnelles (climatologie, océanographie, physique).

Ce livre s'adresse aux personnes qui maîtrisent déjà le langage Python — la syntaxe, les structures de données natives, les fonctions, les classes et les modules — ainsi que les bases des mathématiques nécessaires à la data science : algèbre linéaire, probabilités et statistiques élémentaires. Si ces prérequis ne sont pas encore acquis, le livre *Le langage Python* de la même collection constitue une préparation idéale avant d'aborder cet ouvrage.

## Partie I — Fondations scientifiques

- [L'écosystème data science](01_ecosysteme.md)
- [NumPy — tableaux et vectorisation](02_numpy_bases.md)
- [NumPy — algèbre linéaire et opérations avancées](03_numpy_avance.md)
- [Matplotlib et Seaborn](04_visualisation.md)

## Partie II — Manipulation de données

- [Pandas — Series et DataFrame](05_pandas_bases.md)
- [Pandas — transformation et nettoyage](06_pandas_transformation.md)
- [Pandas — agrégation et regroupement](07_pandas_agregation.md)
- [Xarray — tableaux étiquetés](08_xarray.md)

## Partie III — Machine Learning avec Scikit-learn

- [L'API Scikit-learn](09_sklearn_api.md)
- [Apprentissage supervisé](10_supervise.md)
- [Apprentissage non supervisé](11_non_supervise.md)
- [Évaluation et sélection de modèles](12_evaluation.md)

## Partie IV — Deep Learning avec PyTorch

- [Tenseurs et autograd](13_tenseurs.md)
- [Réseaux de neurones](14_reseaux.md)
- [Entraînement et optimisation](15_entrainement.md)
- [Réseaux convolutifs (CNN)](16_cnn.md)
- [Réseaux récurrents (RNN)](17_rnn.md)

## Partie V — Pratique et déploiement

- [Performances et optimisation](18_performances.md)
- [Formats de données](19_formats.md)
- [Pipelines de données](20_pipelines.md)
- [Déploiement de modèles](21_deploiement.md)

---

**À propos de ce livre.** Ces notes couvrent l'ensemble de la stack data science Python, depuis les tableaux NumPy jusqu'au déploiement de modèles de deep learning, en passant par la manipulation de données avec Pandas et l'apprentissage automatique avec Scikit-learn. L'approche mêle explications conceptuelles rigoureuses, exemples de code exécutables et visualisations construites avec Matplotlib et Seaborn. La rédaction a été réalisée par Lôc Cosnier avec l'assistance de Claude (Anthropic), un modèle de langage. Le contenu a été relu, structuré et validé par l'auteur ; toute erreur restante lui est imputable.
