Python

Open resources for learning and using the Python programming language.

Table of Contents

Overview

Python is a popular general-purpose programming language, with a lot of available materials covering lots of different topics. This list is focused on curating materials focused on learning the basics of the Python programming language (the standard library), as well as the tools available for numerical and scientific computing.

The Python programming language is managed by the Python Software Foundation, which hosts their own documentation page, as well as their own guide on getting started with Python.

In terms of version, Python is now firmly on Python3, and it is recommended to use the most recent 3.X stable release of Python. Note that Python2 is effectively retired, and there are many useful updates that make Python3 worth updating to.

In terms of distributions and/or platforms to manage Python, there are many, but a pretty typical approach is to use the anaconda distribution to get and manage Python, and to use the Jupyter ecosystem, including their notebooks, for interactive computing.

For more generalized lists of Python resources, there are some other relevant lists:

Standard Python

The following are openly available courses, resources and/or tutorials for learning standard library Python.

Python Cheatsheet

The Python cheatsheet is a comprehensive collection of notes on standard library Python.

HomePage - Github

Introductory Python

Introduction to Python is a course taught and developed at UC San Diego (as COGS18) with openly available materials for learning Python.

Homepage - Github

Software Carpentry

Software Carpentry creates lessons aimed at scientists, and has some lessons on the Python programming language.

Homepage - Python Lesson 1 - Python Lesson 2

Codecademy

Codecademy has an online tutorial for Python, with an online interactive interpreter to try out some code.

You may need to sign-up for codecademy, but you can do many of the lessons for free.

Homepage

Whirlwind Tour of Python

Whirlwind tour of Python, by Jake VanderPlas, is a quick introduction to the Python programming language, aimed at people who already have a general sense of programming and want to learn the Python syntax.

Homepage - Textbook - Github

Python for Everybody

PY4E, by Dr. Chuck, is a set of free materials, including lessons and videos, for learning to program in Python.

Homepage - Course - Lessons

Practical Python Programming

Practical Python Programming, by David Beazley, is an openly available course on the Python programming language.

Homepage - Github

Python in 4 Hours

This video lesson, from freeCodeCamp.Org, is brief course introducing the Python programming language.

Video

Python Tips: Intermediate Python

Intermediate Python is a collection of materials for learning intermediate-level tips and tricks in Python.

Homepage - Github

Scientific Python

‘Scientific Python’ refers to the tools and communities in Python that focus on numerical, scientific & data applications.

Generally, this is clustered around the scipy ecosystem.

The core scientific computing tools in Python include:

  • numpy for numerical computing, and data array management
  • pandas for managing and analyzing heterogeneous data
  • matplotlib for plotting and all kinds of visualizations
  • scipy for general scientific computing
  • scikit-learn for machine learning

Each of the above tools have their own documentation, user guides and tutorials for learning their respective tools and applications.

Scipy Lectures

The scipy organization has a course for learning the scipy ecosystem.

Homepage - Github

Python Data Science Handbook

The Python Data Science Handbook, by Jake VanderPlas, is an openly available resource for learning data science in Python.

Homepage - Textbook - Github

Data Science in Practice

Data Science in Practice is a course taught and developed at UC San Diego (as COGS108) with openly available materials for learning data science with Python.

Website - Github

Numerical Tours in Python

Numerical tours in Python is a collection of materials exploring topics within numerical computing.

Homepage

From Python to Numpy

From Python to Numpy, by Nicolas Rougier, is an in depth introduction to numpy, for those who have some familiarity with the standard library.

Homepage - Github

IPython Cookbook

The IPython Cookbook is an openly available collection of numerical computing examples and workflows, in Jupyter notebooks.

Homepage - Github

Python for Data Analysis

Python for Data Analysis, by Luke Thompson, is an introduction to doing data science in Python, with Jupyer notebooks.

Github

University of Michigan Girls Who Code Materials

Introductory materials, starting at basic Python and working through numerical computation and data management, using practice notebooks.

Github - Paper

Reproducible Data Science with Python Tools and Real-World Data

This online textbook covers data science work in Python, using real-world datasets, related to the COVID-19 pandemic.

HomePage - Github

Exercises

The following are collections of exercises to practice using Python.

The following are exercises related to standard library Python:

The following are exercises & collections related to scientific computing with Python:

Topics

The following are guides for specific topics in the Python language: