This lesson is being piloted (Beta version)

Programming for Astronomy and Astrophysics 1: Basic Python

The best way to learn how to program is to do something useful, so this introduction to Python is built around a common scientific task: data analysis.

We will get to some astronomy-specific examples later on, but in one of the main example data sets in this lesson, we are studying inflammation in patients who have been given a new treatment for arthritis, and need to analyze the first dozen data sets of their daily inflammation. The data sets are stored in comma-separated values (CSV) format:

The first three rows of our first file look like this:

0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0
0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1
0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1

Each number represents the number of inflammation bouts that a particular patient experienced on a given day. For example, value “6” at row 3 column 7 of the data set above means that the third patient was experiencing inflammation six times on the seventh day of the clinical study.

So, we want to:

  1. Calculate the average inflammation per day across all patients.
  2. Plot the result to discuss and share with colleagues.

To do all that, we’ll have to learn a little bit about programming.

Prerequisites

You need to understand the concepts of files and directories and how to start a Python interpreter before tackling this lesson. This lesson sometimes references JupyterLab and Jupyter Notebook although in practice you can use any Python interpreter.

The commands in this lesson pertain to Python 3.

Getting Started

To get started, follow the directions on the “Setup” page to download data and install a Python interpreter.

Schedule

Setup Download files required for the lesson
00:00 1. Running and Quitting How can I run Python programs?
00:15 2. Python Fundamentals What basic data types can I work with in Python?
How can I create a new variable in Python?
Can I change the value associated with a variable after I create it?
00:45 3. Data Types and Type Conversion What kinds of data do programs store?
How can I convert one type to another?
01:15 4. Libraries How can I use software that other people have written?
How can I find out what that software does?
01:35 5. Analyzing Patient Data How can I process tabular data files in Python?
02:35 6. Visualizing Tabular Data How can I visualize tabular data in Python?
How can I group several plots together?
03:25 7. Repeating Actions with Loops How can I do the same operations on many different values?
03:55 8. Storing Multiple Values in Lists How can I store many values together?
04:40 9. Analyzing Data from Multiple Files How can I do the same operations on many different files?
05:00 10. Beyond Lists - Tuples, Sets and Dictionaries What other methods can I use to store information?
How can I more efficiently summarise and recall the stored data?
05:40 11. Making Choices How can my programs do different things based on data values?
06:30 12. Creating Functions How can I define new functions?
What’s the difference between defining and calling a function?
What happens when I call a function?
07:20 13. Simple Input/Output How can I write and read data to and from files?
07:50 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.