SciPy 2024

Thinking In Arrays
07-08, 13:30–17:30 (US/Pacific), Room 315

Despite its reputation for being slow, Python is the leading language of scientific computing, which generally needs large-scale (fast) computations. This is because most scientific problems can be split into "metadata bookkeeping" and "number crunching," where the latter is performed by array-oriented (vectorized) calls into precompiled routines.

This tutorial is an introduction to array-oriented programming. We'll focus on techniques that are equally useful in NumPy, Pandas, xarray, CuPy, Awkward Array, and other libraries, and we'll work in groups on three class projects: Conway's Game of Life, evaluating decision trees, and computations on ragged arrays.

GitHub repository: https://github.com/ekourlit/scipy2024-tutorial-thinking-in-arrays


Array-oriented programming is a paradigm in its own right, challenging us to think about problems in a different way. From APL in 1966 to NumPy today, most users of array-oriented programming are scientists, analyzing or simulating data. This tutorial focuses on the thought process: all of the problems are to be solved in an imperative way (for loops) and an array-oriented way. Matplotlib will be used for plotting, but all plotting commands will be given (not prerequisites).

We'll alternate between short lectures and small group projects (3‒4 people each), in which tutors will be available for help, followed by a guided tour through solutions, alternatives, and trade-offs.


Prerequisites

Participants should have a basic familiarity with NumPy, such as the content of the "Introduction to Numerical Computing With NumPy" tutorial (or similar).

Prior Python Programming Level of Knowledge Expected: Basic; enough to understand loops, if statements, function calls, etc.

Gordon Watts is a professor of physics at the University of Washington, Seattle, and a member of the ATLAS experiment at the Large Hadron Collider at CERN and deputy director of the National Science Foundation's IRIS-HEP Software Institute. He has extensive lecture and tutorial teaching experience in classrooms, labs, and informal tutorial settings. One of his main ATLAS responsibilities is helping to bring python-based analysis techniques to the ~3000 physicists who are part of the ATLAS experiment.

This speaker also appears in:

Vangelis is a postdoctoral researcher at the Technical University of Munich and a member of the ATLAS Collaboration at CERN. He currently directs the data analytics group of ATLAS providing technical leadership on the development of the data analysis software and formats producing the results of hundreds of physics publications per year. His research is focused on enabling efficient analysis of terabytes of experimental data through array-oriented programming methods.

This speaker also appears in: