A Hitchhiker’s Guide to the Array API Standard Ecosystem
EuroSciPy 2025
2025-08-20
About Me
- Maintainer: SciPy, Pixi, array-api-extra
- Consortium for Python Data API Standards Member
- Computer Science & Philosophy Undergraduate, University of Oxford
- Mentee @ prefix.dev
(European Summer of Code)
Arrays
- what is an array?
- used everywhere
Ecosystem
- Diagrams from SciPy talk
- fractured to unified
Why? — End Users
- want to be able to switch array libraries without reinventing their entire stack
- try out new hardware
- try out functionality specific to an array library
Why? — Array consuming libraries
- provide users with hardware acceleration and interoperability
- without maintenance burden increasing massively
Why? — Array providing libraries
- given a concrete API to aim to implement
- rewarded with automatic compatibility with consuming libraries
Why? — Ecosystem
- reduce duplication
- functionality maintained in one place
- diagrams from last year
How?
- array-agnostic code
- the implementation approach: expanding circle diagram
Tour of the ecosystem
- diagram — the libraries making this implementation possible
Tour — array-api
- developed by a cross-ecosystem consortium
- what is it?
- who is it for? providers/consumers/end-users?
The Array API Standard
- link to Aaron’s SciPy talk
- past work, design principles, methodology
Tour — array-api-tests
- what is it?
- who is it for? providers/consumers/end-users?
Tour — array-api-compat
- what is it?
- who is it for? providers/consumers/end-users?
- what does real usage look like?
Tour — array-api-strict
- what is it?
- who is it for? providers/consumers/end-users?
- what does real usage look like?
Tour — array-api-extra
- what is it?
- who is it for? providers/consumers/end-users?
- what does real usage look like?
Tour — array-api-typing
- what is it?
- who is it for? providers/consumers/end-users?
Status — Ecosystem Overview
- summarise support across providers and consumers
Status — scipy
- enable with experimental env var
- coverage docs
Bonus Projects
- marray
- quantity-array (prototype)
- …
What’s next?
- wider ecosystem adoption
- …
- upstream testing utilities from
scipy
/scikit-learn
to array-api-extra
What else?
- SciPy compiled code: delegation, translation, dispatching
- …