Learn Dask

Scale pandas, NumPy and plain Python to many cores and clusters

15 lessons · 3 hours · 4 levels · covers Dask 2026.x

Dask parallelizes Python analytics: it splits pandas DataFrames and NumPy arrays into many partitions or chunks, builds a lazy task graph, and runs it on all cores of a laptop or on a cluster of hundreds of machines. Its APIs mirror pandas and NumPy, and dask.delayed and futures parallelize arbitrary Python code. Learn it when your data or computation outgrows one core or one machine's memory but you want to stay in the PyData ecosystem.

Before you start

Dask builds on these; the tree links to the exact lessons you need.

How deep do you want to go?

1. EssentialsRead and write simple code, do the everyday basics5 lessons · 1 hour in total
2. PracticalUse it productively at work, with the usual idioms9 lessons · 2 hours in total
3. AdvancedThe less common features, performance and trade-offs12 lessons · 3 hours in total
4. ExpertInternals and the edge cases experts know15 lessons · 3 hours in total

The Dask tree

DaskLazy collections, partitions and compute()Lazy collections,partitions and com…Reading data into Dask DataFramesReading data intoDask DataFramespandas-style operations in Daskpandas-styleoperations in Daskdask.delayed: parallelize custom codedask.delayed:parallelize custom…Schedulers and the distributed ClientSchedulers and thedistributed ClientPartitions, divisions and the indexPartitions, divisionsand the indexmap_partitions and metamap_partitions andmetaDask Array: chunked NumPyDask Array: chunkedNumPyFutures: real-time task submissionFutures: real-timetask submissionDataFrameDataFrameDefining functionsDefining functionsReading CSV, Excel and ParquetReading CSV, Exceland Parquetgroupby and aggregationgroupby andaggregationFunctions as objects, lambdas and closuresFunctions as objects,lambdas and closur…Threads, processes and concurrent.futuresThreads, processesand concurrent.fut…Selecting with loc and ilocSelecting with locand ilocapply vs vectorized operationsapply vs vectorizedoperationsAggregations and the axis argumentAggregations and theaxis argumentBroadcastingBroadcasting
Essentials and Practical shown (9 of 15 lessons); the full list is below. Click a lesson to read it.

All 15 lessons, in order

Lazy collections and computing

  1. Lazy collections, partitions and compute() · Essentials · 10 min

    See how Dask splits data into partitions, builds a lazy task graph, and runs it in parallel when you call compute().

Dask DataFrame

  1. Reading data into Dask DataFrames · Essentials · 12 min

    Create Dask DataFrames with read_parquet, read_csv and from_pandas, and inspect them with head, dtypes and npartitions.

  2. pandas-style operations in Dask · Essentials · 15 min

    Filter, assign, group and aggregate Dask DataFrames with the pandas API, and know which parts of pandas behave differently.

  3. Partitions, divisions and the index · Practical · 15 min

    Size partitions sensibly, use repartition, and understand divisions and set_index for fast loc lookups and joins.

  4. map_partitions and meta · Practical · 12 min

    Run any pandas function on every partition with map_partitions, and give Dask the output schema with meta.

  5. Joins and shuffles at scale · Advanced · 15 min

    Understand when merges, sorts and set_index trigger an all-to-all shuffle, and use broadcast and index-aligned joins to avoid it.

  6. The DataFrame query optimizer · Advanced · 12 min

    See how Dask DataFrame's expression system optimizes queries with projection and predicate pushdown, and inspect plans with pprint and explain.

Arrays, delayed and futures

  1. dask.delayed: parallelize custom code · Essentials · 12 min

    Wrap ordinary Python functions with dask.delayed to build task graphs from loops and run them in parallel.

  2. Dask Array: chunked NumPy · Practical · 15 min

    Build chunked arrays with dask.array, choose chunk sizes, and run NumPy-style math, reductions and rechunking.

Distributed scheduling

  1. Schedulers and the distributed Client · Essentials · 12 min

    Choose between the threaded, process and distributed schedulers, start a local Client, and open the dashboard.

  2. Futures: real-time task submission · Practical · 12 min

    Submit work immediately with client.submit and client.map, gather results, and react as tasks finish with as_completed.

  3. persist, memory and the dashboard · Advanced · 15 min

    Keep reused data in cluster memory with persist, understand worker memory limits and spilling, and diagnose problems in the dashboard.

Graphs and internals

  1. Task graphs and the graph spec · Expert · 15 min

    Look under the hood: Dask's task graph specification, keys, low-level graphs from collections, fusion and ordering.

  2. Inside the distributed scheduler · Expert · 15 min

    Understand the scheduler, workers and client, task states, data locality, work stealing and resilience in dask.distributed.

  3. Deploying and scaling clusters · Expert · 12 min

    Run Dask beyond a laptop on Kubernetes, HPC job queues, cloud VMs or managed services, with adaptive scaling and consistent environments.