This presentation is an attempt to summarize the NumPy roadmap and both technical and non-technical ideas for the next 1-2 years to users that heavily rely on NumPy, as well as potential funders.
2. Scope & Vision
The key thing NumPy offers is:
an array object (N-dimensional, in-memory, on CPUs)
and array computing APIs
NumPy lives at the heart of the numerical Python
ecosystem. We want to:
evolve while remaining a stable base
address bottlenecks that limit how the
ecosystem can grow
3. State of the Project
• ~10 active maintainers (but bus factor ~2-3)
• Since Q1-Q2 2018: 2 funded developers
• Positive trend in activity:
• Lots of ideas …
… and challenges
4. State of the Project
Have in place now:
• governance structure
• technical roadmap
• code of conduct
• semi-regular sprints & in-person meetings
5. Key tech goal: improved interoperability
Make code written for the NumPy API work with:
distributed arrays (e.g. Dask)
sparse arrays (pydata/sparse)
GPU arrays (e.g. CuPy)
…
without changing that code.
How: protocols (__array_ufunc__, __array_function__).
Implementation under way
6. Key tech goal: improved interoperability
Current state of N-dimensional arrays in Python
8. Key tech goal: easier custom dtypes
Enable library authors and advanced users to create arrays
with:
categoricals
variable-length strings
units
auto-diff functionality
…
In planning stage
9. Sample of other important tech goals
• New random number generation framework
• New indexing methods (vindex/oindex)
• Backends for fft & linalg
• Full rewrite of numpy.fft
In planning stage
API discussion ongoing
In progress
Close to done
10. Sustainability goal: grow maintainers & leadership
Do whatever we can to make NumPy more sustainable as a
project. E.g.:
• Improve Continuous Integration
• Make code base more approachable (docs, refactoring)
• Pathways beyond volunteer effort
11. Outward focus
Redesign numpy.org — address various audiences:
end users (beginner & advanced)
library developers
packagers
educators
potential contributors
…
Dialogue with key stakeholders — your pain points,
needs and desires & how to best reach us.