NumPy / breaking change
NumPy 2.0 breaks the 1.x binary ABI and removes legacy APIs
NumPy 2.0 introduced the project’s first major ABI break since the 1.x line, so extension binaries built against NumPy 1.x may fail to import under 2.0. It also removed old Python and C APIs and adopted new type-promotion behavior, creating migration work even for some projects without compiled code.
- Affected product / version
- NumPy 2.0 ABI and APIs
- Announced
- Effective
- Source checked
Checked against the linked documentation on 2026-09-07. Recheck the vendor documentation before acting.
What to check in your application
PlaintextML interpretation of the documented change:
- Projects shipping C, Cython, or other NumPy-linked extensions should rebuild wheels against NumPy 2.x and test those wheels with both NumPy 1.26 and 2.x where dual-runtime support is intended.
- Python code should run the NPY201 Ruff migration rule and then test numerical behavior, especially mixed-dtype operations, removed aliases, Windows integer defaults, and code that relied on private namespaces.
Limits and uncertainty
The impact depends on whether a project imports compiled extensions and which removed or behavior-changing APIs it uses; pure-Python consumers may see no ABI failure. NumPy’s compatibility guidance supports dual-runtime wheels, but downstream build systems and bundled third-party binaries still require their own validation.
Official sources
- NumPy News: NumPy 2.0 release date and release announcement
- NumPy 2.0.0 Release Notes
- NumPy 2.0 migration guide
- NumPy guidance for downstream package authors
Revision history
- — Initial record added after checking the linked official documentation; migration checks are editorial interpretation.
Found a problem? Keep the record URL, the claim that needs changing, and the supporting primary source together when reporting it to the publisher.