There are many recent additions to Python that make it an excellent programming language for data analysis. This tutorial has two goals. First, we introduce several of the recent Python modules for data analysis. We provide hands-on exercises for manipulating and analyzing data using pandas and scikit-learn. Second, we execute examples using the Jupyter notebook, a web-based interactive development environment that facilitates documentation, sharing, and remote execution. Together these tools create a powerful, new way to approach scientific workflows for data analysis.