Skip to main content
`Ctrl`+`K`

# NumPy 1.26.1 Release Notes

NumPy 1.26.1 is a maintenance release that fixes bugs and regressions discovered after the 1.26.0 release. In addition, it adds new functionality for detecting BLAS and LAPACK when building from source. Highlights are:

- Improved detection of BLAS and LAPACK libraries for meson builds

- Pickle compatibility with the upcoming NumPy 2.0.

The 1.26.release series is the last planned minor release series before NumPy 2.0. The Python versions supported by this release are 3.9-3.12.

## Build system changes

### Improved BLAS/LAPACK detection and control

Auto-detection for a number of BLAS and LAPACK is now implemented for Meson. By default, the build system will try to detect MKL, Accelerate (on macOS >=13.3), OpenBLAS, FlexiBLAS, BLIS and reference BLAS/LAPACK. Support for MKL was significantly improved, and support for FlexiBLAS was added.

New command-line flags are available to further control the selection of the BLAS and LAPACK libraries to build against.

To select a specific library, use the config-settings interface via `pip` or `pypa/build`. E.g., to select `libblas`/`liblapack`, use:

    $ pip install numpy -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
    $ # OR
    $ python -m build . -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack

This works not only for the libraries named above, but for any library that Meson is able to detect with the given name through `pkg-config` or CMake.

Besides `-Dblas` and `-Dlapack`, a number of other new flags are available to control BLAS/LAPACK selection and behavior:

- `-Dblas-order` and `-Dlapack-order`: a list of library names to search for in order, overriding the default search order.

- `-Duse-ilp64`: if set to `true`, use ILP64 (64-bit integer) BLAS and LAPACK. Note that with this release, ILP64 support has been extended to include MKL and FlexiBLAS. OpenBLAS and Accelerate were supported in previous releases.

- `-Dallow-noblas`: if set to `true`, allow NumPy to build with its internal (very slow) fallback routines instead of linking against an external BLAS/LAPACK library. The default for this flag may be changed to ``true`` in a future 1.26.x release, however for 1.26.1 we’d prefer to keep it as ``false`` because if failures to detect an installed library are happening, we’d like a bug report for that, so we can quickly assess whether the new auto-detection machinery needs further improvements.

- `-Dmkl-threading`: to select the threading layer for MKL. There are four options: `seq`, `iomp`, `gomp` and `tbb`. The default is `auto`, which selects from those four as appropriate given the version of MKL selected.

- `-Dblas-symbol-suffix`: manually select the symbol suffix to use for the library - should only be needed for linking against libraries built in a non-standard way.

## New features

### `numpy._core` submodule stubs

`numpy._core` submodule stubs were added to provide compatibility with pickled arrays created using NumPy 2.0 when running Numpy 1.26.

## Contributors

A total of 13 people contributed to this release. People with a “+” by their names contributed a patch for the first time.

- Andrew Nelson

- Anton Prosekin +

- Charles Harris

- Chongyun Lee +

- Ivan A. Melnikov +

- Jake Lishman +

- Mahder Gebremedhin +

- Mateusz Sokół

- Matti Picus

- Munira Alduraibi +

- Ralf Gommers

- Rohit Goswami

- Sayed Adel

## Pull requests merged

A total of 20 pull requests were merged for this release.

- #24742: MAINT: Update cibuildwheel version

- #24748: MAINT: fix version string in wheels built with setup.py

- #24771: BLD, BUG: Fix build failure for host flags e.g. `-march=native`…

- #24773: DOC: Updated the f2py docs to remove a note on -fimplicit-none

- #24776: BUG: Fix SIMD f32 trunc test on s390x when baseline is none

- #24785: BLD: add libquadmath to licences and other tweaks (#24753)

- #24786: MAINT: Activate `use-compute-credits` for Cirrus.

- #24803: BLD: updated vendored-meson/meson for mips64 fix

- #24804: MAINT: fix licence path win

- #24813: BUG: Fix order of Windows OS detection macros.

- #24831: BUG, SIMD: use scalar cmul on bad Apple clang x86_64 (#24828)

- #24840: BUG: Fix DATA statements for f2py

- #24870: API: Add `NumpyUnpickler` for backporting

- #24872: MAINT: Xfail test failing on PyPy.

- #24879: BLD: fix math func feature checks, fix FreeBSD build, add CI…

- #24899: ENH: meson: implement BLAS/LAPACK auto-detection and many CI…

- #24902: DOC: add a 1.26.1 release notes section for BLAS/LAPACK build…

- #24906: MAINT: Backport `numpy._core` stubs. Remove `NumpyUnpickler`

- #24911: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2

- #24912: BUG: loongarch doesn’t use REAL(10)