Most of the analysis and tools in the Salish Sea MEOPAR project are written in Python, though Matlab makes occasional guest appearances.

Python Programming for Data Science (PY4DS) is a good, grad level, introduction to Python, some programming topics, NumPy, and Pandas. Its target audiences are people who know how to program in a language other than Python, or people who know a little Python and want/need to know more about the language, good programming practices, and scientific Python. It was written by Tomas Beuzen based on material he and others developed to teach the “DSCI 511 Python Programming for Data Science” course in the UBC Master of Data Science Program.

Don’t worry too much about Anonymous Functions (aka lambda) in chapter 2, section 7, nor about Inheritance and Subclasses in chapter 3, section 3.

PY4DS goes pretty deep into Pandas. That’s absolutely appropriate for the MDS program, and some of that depth is relevant for MOAD analyses. The intro to Pandas is also a good basis for jumping off into xarray for working with netCDF datasets because xarray is inspired by and based on Pandas.

Another good resource for learning about Python is the Real Python site.