Real Python Podcast Episode #146 Title Artwork

Episode 146: Using NumPy and Linear Algebra for Faster Python Code

The Real Python Podcast

Feb 24, 2023 1h 8m

Are you still using loops and lists to process your data in Python? Have you heard of a Python library with optimized data structures and built-in operations that can speed up your data science code? This week on the show, Jodie Burchell, developer advocate for data science at JetBrains, returns to share secrets for harnessing linear algebra and NumPy for your projects.

Episode Sponsor:

Jodie details how most people begin their data science journey using loops to iterate over values and apply operations sequentially. We talk about how loops are friendly for beginners, being clear to read and easy to debug, but unfortunately don’t scale well, especially with large amounts of data.

Jodie shares some of the basics of linear algebra and how to organize data into vectors. We talk about how the NumPy library leverages those concepts to improve data processing. We discuss how the library includes operations for vector and matrix addition and subtraction, and why these operations are more efficient than loops. We also cover how NumPy stores arrays in memory and when working with them is faster vs when it’s not.

Topics:

  • 00:00:00 – Introduction
  • 00:02:35 – Vectorize all the things! - PyCon UK 2022 Talk
  • 00:06:39 – Becoming familiar with linear algebra
  • 00:09:05 – Beginners start with loops
  • 00:11:25 – Starting with basic linear algebra
  • 00:12:25 – The basic unit of a vector
  • 00:18:06 – NumPy representing vectors in Python
  • 00:23:25 – Sponsor: InfluxDB
  • 00:24:13 – Block management
  • 00:25:54 – Replacing a loop with vector-based operations
  • 00:34:06 – NumPy broadcasting
  • 00:38:52 – Approximating nearest neighbors
  • 00:43:49 – Video Course Spotlight
  • 00:45:15 – Solving the problem
  • 00:46:44 – Getting rid of nested loops
  • 00:48:54 – A peek under the hood
  • 00:53:28 – How arrays vs lists are stored in memory
  • 01:00:24 – Considering a GPU
  • 01:03:37 – Real Python resources on the subject
  • 01:04:08 – Upcoming talks and conferences
  • 01:07:31 – Thanks and goodbye

Show Links: