Python Data Science Handbook
Jake VanderPlas
This website contains the full text of the Python Data Science Handbook
([Link] by Jake VanderPlas; the content is
available on GitHub ([Link] in the form of
Jupyter notebooks.
The text is released under the CC-BY-NC-ND license ([Link]
nc-nd/3.0/us/legalcode), and code is released under the MIT license
([Link]
If you find this content useful, please consider supporting the work by buying the book
([Link]
# Table of Contents
## Preface ([Link])
## 1. IPython: Beyond Normal Python (01.00-ipython-beyond-
[Link])
Help and Documentation in IPython ([Link])
Keyboard Shortcuts in the IPython Shell ([Link])
IPython Magic Commands ([Link])
Input and Output History ([Link])
IPython and Shell Commands ([Link])
Errors and Debugging ([Link])
Profiling and Timing Code ([Link])
More IPython Resources ([Link])
## 2. Introduction to NumPy (02.00-introduction-to-
[Link])
Understanding Data Types in Python ([Link])
The Basics of NumPy Arrays ([Link])
Computation on NumPy Arrays: Universal Functions (02.03-computation-on-arrays-
[Link])
Aggregations: Min, Max, and Everything In Between (02.04-computation-on-arrays-
[Link])
Computation on Arrays: Broadcasting ([Link])
Comparisons, Masks, and Boolean Logic ([Link])
Fancy Indexing ([Link])
Sorting Arrays ([Link])
Structured Data: NumPy's Structured Arrays ([Link])
## 3. Data Manipulation with Pandas (03.00-introduction-to-
[Link])
Introducing Pandas Objects ([Link])
Data Indexing and Selection ([Link])
Operating on Data in Pandas ([Link])
Handling Missing Data ([Link])
Hierarchical Indexing ([Link])
Combining Datasets: Concat and Append ([Link])
Combining Datasets: Merge and Join ([Link])
Aggregation and Grouping ([Link])
Pivot Tables ([Link])
Vectorized String Operations ([Link])
Working with Time Series ([Link])
High-Performance Pandas: eval() and query() ([Link])
Further Resources ([Link])
## 4. Visualization with Matplotlib (04.00-introduction-to-
[Link])
Simple Line Plots ([Link])
Simple Scatter Plots ([Link])
Visualizing Errors ([Link])
Density and Contour Plots ([Link])
Histograms, Binnings, and Density ([Link])
Customizing Plot Legends ([Link])
Customizing Colorbars ([Link])
Multiple Subplots ([Link])
Text and Annotation ([Link])
Customizing Ticks ([Link])
Customizing Matplotlib: Configurations and Stylesheets (04.11-settings-and-
[Link])
Three-Dimensional Plotting in Matplotlib ([Link])
Geographic Data with Basemap ([Link])
Visualization with Seaborn ([Link])
Further Resources ([Link])
## 5. Machine Learning ([Link])
What Is Machine Learning? ([Link])
Introducing Scikit-Learn ([Link])
Hyperparameters and Model Validation (05.03-hyperparameters-and-model-
[Link])
Feature Engineering ([Link])
In Depth: Naive Bayes Classification ([Link])
In Depth: Linear Regression ([Link])
In-Depth: Support Vector Machines ([Link])
In-Depth: Decision Trees and Random Forests ([Link])
In Depth: Principal Component Analysis ([Link])
In-Depth: Manifold Learning ([Link])
In Depth: k-Means Clustering ([Link])
In Depth: Gaussian Mixture Models ([Link])
In-Depth: Kernel Density Estimation ([Link])
Application: A Face Detection Pipeline ([Link])
Further Machine Learning Resources ([Link])
## Appendix: Figure Code ([Link])