SciPy 2024

A Practical Introduction to NumPy
07-08, 08:00–12:00 (US/Pacific), Ballroom B/C

Do you have a basic understanding of Python and want to "level-up" your computational skills? Do you instinctively write for-loops to perform computations on your arrays? Have you ever heard someone complain "Python is slow" and want to prove them wrong? Do you want to know how to manipulate NumPy arrays like a master? If any or all of these is true, then this tutorial is for you!


This tutorial will help you get started NumPy by introducing the NumPy array and how to take advantage of its design and the fast vectorized operations it supports. We’ll learn about array creation and manipulation, and we’ll check for performance along the way, showing 100x and sometimes 1000x speedups from picking the right data type and using it in the right way. We’ll talk about some common operations, including differentiation, decimation, masking, etc. Although it won’t be the main focus of the tutorial, we’ll briefly cover some plotting. By the end of the session, you can have confidence to figure out how to pose your computational problem in a way that takes advantage of the NumPy package.


Prerequisites

Attendees of the tutorial are expected to have a basic competency in Python and should know how to write and run a Python script, how to execute commands at a Terminal and at a Python prompt, and how to launch a Jupyter Lab session. But I'll bootstrap my whole setup live, and people can follow along if they're still a little shaky on the steps.

Installation Instructions

Bootstrapping instructions, a notebook with the headings and exercises, and sample data are available at https://github.com/DillerDigital/2024SciPyTutorial

Tim holds B.S.., and Ph.D. degrees in Mechanical Engineering from The University of Texas at Austin and an M.S. in Course 2 (Mechanical Engineering) from the Massachusetts Institute of Technology. Between Master's and Doctoral degrees, Tim spend 5 years working at the Michelin Americas Research & Development Corporation in Greenville, South Carolina, first as a test engineer, instrumenting tire / vehicle systems and writing software to manage the flow of test data, and eventually doing modeling and simulations of tire/vehicle systems for handling performance.

After returning to his roots to pursue a Ph.D. in Austin, measuring and modeling the emission of particulates from diesel engines, Tim signed on with Enthought and spent 12½ years writing software for clients in engineering disciplines from consumer products to oil exploration and chemical manufacturing, then managing software teams, then managing digital transformations for large customer accounts in semiconductor and specialty materials manufacturing.

Early in his career at Enthought, Tim started teaching courses in Python for mid-career scientists and engineers and helped to develop the curriculum for what is now the Enthought Academy. Throughout his career with its many turns, Tim has exhibited a passion for engineering, software, and improving human potential through education.

In October 2023, Tim founded Diller Digital to serve the market for high-quality interactive training using the Enthought Academy curriculum in scientific computing in Python after Enthought refocused their business on consulting and product offerings. Tim's goal in founding Diller Digital is to elevate the value and dignity of the work of scientists and engineers by giving them digital tools and the skills to learn new tools or even build their own to take their work to a new level.