Update dependency numpy to v2
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
numpy (source, changelog) | dependencies | major |
>=1.24.4,<1.25.0 -> >=2.0.0,<2.1.0
|
Release Notes
numpy/numpy (numpy)
v2.0.0
NumPy 2.0.0 Release Notes
NumPy 2.0.0 is the first major release since 2006. It is the result of 11 months of development since the last feature release and is the work of 212 contributors spread over 1078 pull requests. It contains a large number of exciting new features as well as changes to both the Python and C APIs.
This major release includes breaking changes that could not happen in a regular minor (feature) release - including an ABI break, changes to type promotion rules, and API changes which may not have been emitting deprecation warnings in 1.26.x. Key documents related to how to adapt to changes in NumPy 2.0, in addition to these release notes, include:
- The numpy-2-migration-guide
- The Numpy 2.0-specific advice in for downstream package authors
Highlights
Highlights of this release include:
- New features:
- A new variable-length string dtype,
numpy.dtypes.StringDType
and a newnumpy.strings
namespace with performant ufuncs for string operations, - Support for
float32
andlongdouble
in allnumpy.fft
functions, - Support for the array API standard in the main
numpy
namespace.
- A new variable-length string dtype,
- Performance improvements:
- Sorting functions
sort
,argsort
,partition
,argpartition
have been accelerated through the use of the Intel x86-simd-sort and Google Highway libraries, and may see large (hardware-specific) speedups, - macOS Accelerate support and binary wheels for macOS >=14, with significant performance improvements for linear algebra operations on macOS, and wheels that are about 3 times smaller,
-
numpy.char
fixed-length string operations have been accelerated by implementing ufuncs that also supportnumpy.dtypes.StringDType
in addition to the fixed-length string dtypes, - A new tracing and introspection API,
numpy.lib.introspect.opt_func_info
, to determine which hardware-specific kernels are available and will be dispatched to. -
numpy.save
now uses pickle protocol version 4 for saving arrays with object dtype, which allows for pickle objects larger than 4GB and improves saving speed by about 5% for large arrays.
- Sorting functions
- Python API improvements:
- A clear split between public and private API, with a new module structure and each public function now available in a single place.
- Many removals of non-recommended functions and aliases. This
should make it easier to learn and use NumPy. The number of
objects in the main namespace decreased by ~10% and in
numpy.lib
by ~80%. -
Canonical dtype names and a new
numpy.isdtype` introspection function,
- C API improvements:
- A new public C API for creating custom dtypes,
- Many outdated functions and macros removed, and private internals hidden to ease future extensibility,
- New, easier to use, initialization functions:
PyArray_ImportNumPyAPI
andPyUFunc_ImportUFuncAPI
.
- Improved behavior:
- Improvements to type promotion behavior was changed by adopting NEP 50. This fixes many user surprises about promotions which previously often depended on data values of input arrays rather than only their dtypes. Please see the NEP and the numpy-2-migration-guide for details as this change can lead to changes in output dtypes and lower precision results for mixed-dtype operations.
- The default integer type on Windows is now
int64
rather thanint32
, matching the behavior on other platforms, - The maximum number of array dimensions is changed from 32 to 64
- Documentation:
- The reference guide navigation was significantly improved, and there is now documentation on NumPy's module structure,
- The building from source documentation was completely rewritten,
Furthermore there are many changes to NumPy internals, including continuing to migrate code from C to C++, that will make it easier to improve and maintain NumPy in the future.
The "no free lunch" theorem dictates that there is a price to pay for all these API and behavior improvements and better future extensibility. This price is:
-
Backwards compatibility. There are a significant number of breaking changes to both the Python and C APIs. In the majority of cases, there are clear error messages that will inform the user how to adapt their code. However, there are also changes in behavior for which it was not possible to give such an error message - these cases are all covered in the Deprecation and Compatibility sections below, and in the numpy-2-migration-guide.
Note that there is a
ruff
mode to auto-fix many things in Python code. -
Breaking changes to the NumPy ABI. As a result, binaries of packages that use the NumPy C API and were built against a NumPy 1.xx release will not work with NumPy 2.0. On import, such packages will see an
ImportError
with a message about binary incompatibility.It is possible to build binaries against NumPy 2.0 that will work at runtime with both NumPy 2.0 and 1.x. See numpy-2-abi-handling for more details.
All downstream packages that depend on the NumPy ABI are advised to do a new release built against NumPy 2.0 and verify that that release works with both 2.0 and 1.26 - ideally in the period between 2.0.0rc1 (which will be ABI-stable) and the final 2.0.0 release to avoid problems for their users.
The Python versions supported by this release are 3.9-3.12.
NumPy 2.0 Python API removals
-
np.geterrobj
,np.seterrobj
and the related ufunc keyword argumentextobj=
have been removed. The preferred replacement for all of these is using the context managerwith np.errstate():
.(gh-23922)
-
np.cast
has been removed. The literal replacement fornp.cast[dtype](arg)
isnp.asarray(arg, dtype=dtype)
. -
np.source
has been removed. The preferred replacement isinspect.getsource
. -
np.lookfor
has been removed.(gh-24144)
-
numpy.who
has been removed. As an alternative for the removed functionality, one can use a variable explorer that is available in IDEs such as Spyder or Jupyter Notebook.(gh-24321)
-
Warnings and exceptions present in
numpy.exceptions
, e.g,numpy.exceptions.ComplexWarning
,numpy.exceptions.VisibleDeprecationWarning
, are no longer exposed in the main namespace. -
Multiple niche enums, expired members and functions have been removed from the main namespace, such as:
ERR_*
,SHIFT_*
,np.fastCopyAndTranspose
,np.kernel_version
,np.numarray
,np.oldnumeric
andnp.set_numeric_ops
.(gh-24316)
-
Replaced
from ... import *
in thenumpy/__init__.py
with explicit imports. As a result, these main namespace members got removed:np.FLOATING_POINT_SUPPORT
,np.FPE_*
,np.NINF
,np.PINF
,np.NZERO
,np.PZERO
,np.CLIP
,np.WRAP
,np.WRAP
,np.RAISE
,np.BUFSIZE
,np.UFUNC_BUFSIZE_DEFAULT
,np.UFUNC_PYVALS_NAME
,np.ALLOW_THREADS
,np.MAXDIMS
,np.MAY_SHARE_EXACT
,np.MAY_SHARE_BOUNDS
,add_newdoc
,np.add_docstring
andnp.add_newdoc_ufunc
.(gh-24357)
-
Alias
np.float_
has been removed. Usenp.float64
instead. -
Alias
np.complex_
has been removed. Usenp.complex128
instead. -
Alias
np.longfloat
has been removed. Usenp.longdouble
instead. -
Alias
np.singlecomplex
has been removed. Usenp.complex64
instead. -
Alias
np.cfloat
has been removed. Usenp.complex128
instead. -
Alias
np.longcomplex
has been removed. Usenp.clongdouble
instead. -
Alias
np.clongfloat
has been removed. Usenp.clongdouble
instead. -
Alias
np.string_
has been removed. Usenp.bytes_
instead. -
Alias
np.unicode_
has been removed. Usenp.str_
instead. -
Alias
np.Inf
has been removed. Usenp.inf
instead. -
Alias
np.Infinity
has been removed. Usenp.inf
instead. -
Alias
np.NaN
has been removed. Usenp.nan
instead. -
Alias
np.infty
has been removed. Usenp.inf
instead. -
Alias
np.mat
has been removed. Usenp.asmatrix
instead. -
np.issubclass_
has been removed. Use theissubclass
builtin instead. -
np.asfarray
has been removed. Usenp.asarray
with a proper dtype instead. -
np.set_string_function
has been removed. Usenp.set_printoptions
instead with a formatter for custom printing of NumPy objects. -
np.tracemalloc_domain
is now only available fromnp.lib
. -
np.recfromcsv
andrecfromtxt
are now only available fromnp.lib.npyio
. -
np.issctype
,np.maximum_sctype
,np.obj2sctype
,np.sctype2char
,np.sctypes
,np.issubsctype
were all removed from the main namespace without replacement, as they where niche members. -
Deprecated
np.deprecate
andnp.deprecate_with_doc
has been removed from the main namespace. UseDeprecationWarning
instead. -
Deprecated
np.safe_eval
has been removed from the main namespace. Useast.literal_eval
instead.(gh-24376)
-
np.find_common_type
has been removed. Usenumpy.promote_types
ornumpy.result_type
instead. To achieve semantics for thescalar_types
argument, usenumpy.result_type
and pass0
,0.0
, or0j
as a Python scalar instead. -
np.round_
has been removed. Usenp.round
instead. -
np.nbytes
has been removed. Usenp.dtype(<dtype>).itemsize
instead.(gh-24477)
-
np.compare_chararrays
has been removed from the main namespace. Usenp.char.compare_chararrays
instead. -
The
charrarray
in the main namespace has been deprecated. It can be imported without a deprecation warning fromnp.char.chararray
for now, but we are planning to fully deprecate and removechararray
in the future. -
np.format_parser
has been removed from the main namespace. Usenp.rec.format_parser
instead.(gh-24587)
-
Support for seven data type string aliases has been removed from
np.dtype
:int0
,uint0
,void0
,object0
,str0
,bytes0
andbool8
.(gh-24807)
-
The experimental
numpy.array_api
submodule has been removed. Use the mainnumpy
namespace for regular usage instead, or the separatearray-api-strict
package for the compliance testing use case for whichnumpy.array_api
was mostly used.(gh-25911)
__array_prepare__
is removed
UFuncs called __array_prepare__
before running computations for normal
ufunc calls (not generalized ufuncs, reductions, etc.). The function was
also called instead of __array_wrap__
on the results of some linear
algebra functions.
It is now removed. If you use it, migrate to __array_ufunc__
or rely
on __array_wrap__
which is called with a context in all cases,
although only after the result array is filled. In those code paths,
__array_wrap__
will now be passed a base class, rather than a subclass
array.
(gh-25105)
Deprecations
-
np.compat
has been deprecated, as Python 2 is no longer supported. -
numpy.int8
and similar classes will no longer support conversion of out of bounds python integers to integer arrays. For example, conversion of 255 to int8 will not return -1.numpy.iinfo(dtype)
can be used to check the machine limits for data types. For example,np.iinfo(np.uint16)
returns min = 0 and max = 65535.np.array(value).astype(dtype)
will give the desired result. -
np.safe_eval
has been deprecated.ast.literal_eval
should be used instead.(gh-23830)
-
np.recfromcsv
,np.recfromtxt
,np.disp
,np.get_array_wrap
,np.maximum_sctype
,np.deprecate
andnp.deprecate_with_doc
have been deprecated.(gh-24154)
-
np.trapz
has been deprecated. Usenp.trapezoid
or ascipy.integrate
function instead. -
np.in1d
has been deprecated. Usenp.isin
instead. -
Alias
np.row_stack
has been deprecated. Usenp.vstack
directly.(gh-24445)
-
__array_wrap__
is now passedarr, context, return_scalar
and support for implementations not accepting all three are deprecated. Its signature should be__array_wrap__(self, arr, context=None, return_scalar=False)
(gh-25409)
-
Arrays of 2-dimensional vectors for
np.cross
have been deprecated. Use arrays of 3-dimensional vectors instead.(gh-24818)
-
np.dtype("a")
alias fornp.dtype(np.bytes_)
was deprecated. Usenp.dtype("S")
alias instead.(gh-24854)
-
Use of keyword arguments
x
andy
with functionsassert_array_equal
andassert_array_almost_equal
has been deprecated. Pass the first two arguments as positional arguments instead.(gh-24978)
numpy.fft
deprecations for n-D transforms with None values in arguments
Using fftn
, ifftn
, rfftn
, irfftn
, fft2
, ifft2
, rfft2
or
irfft2
with the s
parameter set to a value that is not None
and
the axes
parameter set to None
has been deprecated, in line with the
array API standard. To retain current behaviour, pass a sequence [0,
..., k-1] to axes
for an array of dimension k.
Furthermore, passing an array to s
which contains None
values is
deprecated as the parameter is documented to accept a sequence of
integers in both the NumPy docs and the array API specification. To use
the default behaviour of the corresponding 1-D transform, pass the value
matching the default for its n
parameter. To use the default behaviour
for every axis, the s
argument can be omitted.
(gh-25495)
np.linalg.lstsq
now defaults to a new rcond
value
numpy.linalg.lstsq
now uses the new rcond value of the
machine precision times max(M, N)
. Previously, the machine precision
was used but a FutureWarning was given to notify that this change will
happen eventually. That old behavior can still be achieved by passing
rcond=-1
.
(gh-25721)
Expired deprecations
-
The
np.core.umath_tests
submodule has been removed from the public API. (Deprecated in NumPy 1.15)(gh-23809)
-
The
PyDataMem_SetEventHook
deprecation has expired and it is removed. Usetracemalloc
and thenp.lib.tracemalloc_domain
domain. (Deprecated in NumPy 1.23)(gh-23921)
-
The deprecation of
set_numeric_ops
and the C functionsPyArray_SetNumericOps
andPyArray_GetNumericOps
has been expired and the functions removed. (Deprecated in NumPy 1.16)(gh-23998)
-
The
fasttake
,fastclip
, andfastputmask
ArrFuncs
deprecation is now finalized. -
The deprecated function
fastCopyAndTranspose
and its C counterpart are now removed. -
The deprecation of
PyArray_ScalarFromObject
is now finalized.(gh-24312)
-
np.msort
has been removed. For a replacement,np.sort(a, axis=0)
should be used instead.(gh-24494)
-
np.dtype(("f8", 1)
will now return a shape 1 subarray dtype rather than a non-subarray one.(gh-25761)
-
Assigning to the
.data
attribute of an ndarray is disallowed and will raise. -
np.binary_repr(a, width)
will raise if width is too small. -
Using
NPY_CHAR
inPyArray_DescrFromType()
will raise, useNPY_STRING
NPY_UNICODE
, orNPY_VSTRING
instead.(gh-25794)
Compatibility notes
loadtxt
and genfromtxt
default encoding changed
loadtxt
and genfromtxt
now both default to encoding=None
which may
mainly modify how converters
work. These will now be passed str
rather than bytes
. Pass the encoding explicitly to always get the new
or old behavior. For genfromtxt
the change also means that returned
values will now be unicode strings rather than bytes.
(gh-25158)
f2py
compatibility notes
-
f2py
will no longer accept ambiguous-m
and.pyf
CLI combinations. When more than one.pyf
file is passed, an error is raised. When both-m
and a.pyf
is passed, a warning is emitted and the-m
provided name is ignored.(gh-25181)
-
The
f2py.compile()
helper has been removed because it leaked memory, has been marked as experimental for several years now, and was implemented as a thinsubprocess.run
wrapper. It was also one of the test bottlenecks. See gh-25122 for the full rationale. It also used severalnp.distutils
features which are too fragile to be ported to work withmeson
. -
Users are urged to replace calls to
f2py.compile
with calls tosubprocess.run("python", "-m", "numpy.f2py",...
instead, and to use environment variables to interact withmeson
. Native files are also an option.(gh-25193)
Minor changes in behavior of sorting functions
Due to algorithmic changes and use of SIMD code, sorting functions with
methods that aren't stable may return slightly different results in
2.0.0 compared to 1.26.x. This includes the default method of
numpy.argsort
and numpy.argpartition
.
np.solve
Removed ambiguity when broadcasting in The broadcasting rules for np.solve(a, b)
were ambiguous when b
had
1 fewer dimensions than a
. This has been resolved in a
backward-incompatible way and is now compliant with the Array API. The
old behaviour can be reconstructed by using
np.solve(a, b[..., None])[..., 0]
.
(gh-25914)
Polynomial
Modified representation for The representation method for
numpy.polynomial.polynomial.Polynomial
was updated to
include the domain in the representation. The plain text and latex
representations are now consistent. For example the output of
str(np.polynomial.Polynomial([1, 1], domain=[.1, .2]))
used to be
1.0 + 1.0 x
, but now is 1.0 + 1.0 (-3.0000000000000004 + 20.0 x)
.
(gh-21760)
C API changes
-
The
PyArray_CGT
,PyArray_CLT
,PyArray_CGE
,PyArray_CLE
,PyArray_CEQ
,PyArray_CNE
macros have been removed. -
PyArray_MIN
andPyArray_MAX
have been moved fromndarraytypes.h
tonpy_math.h
.(gh-24258)
-
A C API for working with
numpy.dtypes.StringDType
arrays has been exposed. This includes functions for acquiring and releasing mutexes which lock access to the string data, as well as packing and unpacking UTF-8 bytestreams from array entries. -
NPY_NTYPES
has been renamed toNPY_NTYPES_LEGACY
as it does not include new NumPy built-in DTypes. In particular the new string DType will likely not work correctly with code that handles legacy DTypes.(gh-25347)
-
The C-API now only exports the static inline function versions of the array accessors (previously this depended on using "deprecated API"). While we discourage it, the struct fields can still be used directly.
(gh-25789)
-
NumPy now defines
PyArray_Pack
to set an individual memory address. UnlikePyArray_SETITEM
this function is equivalent to setting an individual array item and does not require a NumPy array input.(gh-25954)
-
The
->f
slot has been removed fromPyArray_Descr
. If you use this slot, replace accessing it withPyDataType_GetArrFuncs
(see its documentation and thenumpy-2-migration-guide
). In some cases using other functions likePyArray_GETITEM
may be an alternatives. -
PyArray_GETITEM
andPyArray_SETITEM
now require the import of the NumPy API table to be used and are no longer defined inndarraytypes.h
.(gh-25812)
-
Due to runtime dependencies, the definition for functionality accessing the dtype flags was moved from
numpy/ndarraytypes.h
and is only available after includingnumpy/ndarrayobject.h
as it requiresimport_array()
. This includesPyDataType_FLAGCHK
,PyDataType_REFCHK
andNPY_BEGIN_THREADS_DESCR
. -
The dtype flags on
PyArray_Descr
must now be accessed through thePyDataType_FLAGS
inline function to be compatible with both 1.x and 2.x. This function is defined innpy_2_compat.h
to allow backporting. Most or all users should usePyDataType_FLAGCHK
which is available on 1.x and does not require backporting. Cython users should use Cython 3. Otherwise access will go through Python unless they usePyDataType_FLAGCHK
instead.(gh-25816)
Datetime functionality exposed in the C API and Cython bindings
The functions NpyDatetime_ConvertDatetime64ToDatetimeStruct
,
NpyDatetime_ConvertDatetimeStructToDatetime64
,
NpyDatetime_ConvertPyDateTimeToDatetimeStruct
,
NpyDatetime_GetDatetimeISO8601StrLen
,
NpyDatetime_MakeISO8601Datetime
, and
NpyDatetime_ParseISO8601Datetime
have been added to the C API to
facilitate converting between strings, Python datetimes, and NumPy
datetimes in external libraries.
(gh-21199)
Const correctness for the generalized ufunc C API
The NumPy C API's functions for constructing generalized ufuncs
(PyUFunc_FromFuncAndData
, PyUFunc_FromFuncAndDataAndSignature
,
PyUFunc_FromFuncAndDataAndSignatureAndIdentity
) take types
and
data
arguments that are not modified by NumPy's internals. Like the
name
and doc
arguments, third-party Python extension modules are
likely to supply these arguments from static constants. The types
and
data
arguments are now const-correct: they are declared as
const char *types
and void *const *data
, respectively. C code should
not be affected, but C++ code may be.
(gh-23847)
NPY_MAXDIMS
and NPY_MAXARGS
, NPY_RAVEL_AXIS
introduced
Larger NPY_MAXDIMS
is now 64, you may want to review its use. This is usually
used in a stack allocation, where the increase should be safe. However,
we do encourage generally to remove any use of NPY_MAXDIMS
and
NPY_MAXARGS
to eventually allow removing the constraint completely.
For the conversion helper and C-API functions mirroring Python ones such as
take
, NPY_MAXDIMS
was used to mean axis=None
. Such usage must be replaced
with NPY_RAVEL_AXIS
. See also migration_maxdims
.
(gh-25149)
NPY_MAXARGS
not constant and PyArrayMultiIterObject
size change
Since NPY_MAXARGS
was increased, it is now a runtime constant and not
compile-time constant anymore. We expect almost no users to notice this.
But if used for stack allocations it now must be replaced with a custom
constant using NPY_MAXARGS
as an additional runtime check.
The sizeof(PyArrayMultiIterObject)
no longer includes the full size of
the object. We expect nobody to notice this change. It was necessary to
avoid issues with Cython.
(gh-25271)
Required changes for custom legacy user dtypes
In order to improve our DTypes it is unfortunately necessary to break
the ABI, which requires some changes for dtypes registered with
PyArray_RegisterDataType
. Please see the documentation of
PyArray_RegisterDataType
for how to adapt your code and achieve
compatibility with both 1.x and 2.x.
(gh-25792)
New Public DType API
The C implementation of the NEP 42 DType API is now public. While the
DType API has shipped in NumPy for a few versions, it was only usable in
sessions with a special environment variable set. It is now possible to
write custom DTypes outside of NumPy using the new DType API and the
normal import_array()
mechanism for importing the numpy C API.
See dtype-api
for more details about the API. As always with a new feature,
please report any bugs you run into implementing or using a new DType. It is
likely that downstream C code that works with dtypes will need to be updated to
work correctly with new DTypes.
(gh-25754)
New C-API import functions
We have now added PyArray_ImportNumPyAPI
and PyUFunc_ImportUFuncAPI
as static inline functions to import the NumPy C-API tables. The new
functions have two advantages over import_array
and import_ufunc
:
- They check whether the import was already performed and are light-weight if not, allowing to add them judiciously (although this is not preferable in most cases).
- The old mechanisms were macros rather than functions which included
a
return
statement.
The PyArray_ImportNumPyAPI()
function is included in npy_2_compat.h
for simpler backporting.
(gh-25866)
Structured dtype information access through functions
The dtype structures fields c_metadata
, names
, fields
, and
subarray
must now be accessed through new functions following the same
names, such as PyDataType_NAMES
. Direct access of the fields is not
valid as they do not exist for all PyArray_Descr
instances. The
metadata
field is kept, but the macro version should also be
preferred.
(gh-25802)
elsize
and alignment
access
Descriptor Unless compiling only with NumPy 2 support, the elsize
and aligment
fields must now be accessed via PyDataType_ELSIZE
,
PyDataType_SET_ELSIZE
, and PyDataType_ALIGNMENT
. In cases where the
descriptor is attached to an array, we advise using PyArray_ITEMSIZE
as it exists on all NumPy versions. Please see
migration_c_descr
for more information.
(gh-25943)
NumPy 2.0 C API removals
-
npy_interrupt.h
and the corresponding macros likeNPY_SIGINT_ON
have been removed. We recommend queryingPyErr_CheckSignals()
orPyOS_InterruptOccurred()
periodically (these do currently require holding the GIL though). -
The
noprefix.h
header has been removed. Replace missing symbols with their prefixed counterparts (usually an addedNPY_
ornpy_
).(gh-23919)
-
PyUFunc_GetPyVals
,PyUFunc_handlefperr
, andPyUFunc_checkfperr
have been removed. If needed, a new backwards compatible function to raise floating point errors could be restored. Reason for removal: there are no known users and the functions would have madewith np.errstate()
fixes much more difficult).(gh-23922)
-
The
numpy/old_defines.h
which was part of the API deprecated since NumPy 1.7 has been removed. This removes macros of the formPyArray_CONSTANT
. The replace_old_macros.sed script may be useful to convert them to theNPY_CONSTANT
version.(gh-24011)
-
The
legacy_inner_loop_selector
member of the ufunc struct is removed to simplify improvements to the dispatching system. There are no known users overriding or directly accessing this member.(gh-24271)
-
NPY_INTPLTR
has been removed to avoid confusion (seeintp
redefinition).(gh-24888)
-
The advanced indexing
MapIter
and related API has been removed. The (truly) public part of it was not well tested and had only one known user (Theano). Making it private will simplify improvements to speed upufunc.at
, make advanced indexing more maintainable, and was important for increasing the maximum number of dimensions of arrays to 64. Please let us know if this API is important to you so we can find a solution together.(gh-25138)
-
The
NPY_MAX_ELSIZE
macro has been removed, as it only ever reflected builtin numeric types and served no internal purpose.(gh-25149)
-
PyArray_REFCNT
andNPY_REFCOUNT
are removed. UsePy_REFCNT
instead.(gh-25156)
-
PyArrayFlags_Type
andPyArray_NewFlagsObject
as well asPyArrayFlagsObject
are private now. There is no known use-case; use the Python API if needed. -
PyArray_MoveInto
,PyArray_CastTo
,PyArray_CastAnyTo
are removed usePyArray_CopyInto
and if absolutely neededPyArray_CopyAnyInto
(the latter does a flat copy). -
PyArray_FillObjectArray
is removed, its only true use was for implementingnp.empty
. Create a new empty array or usePyArray_FillWithScalar()
(decrefs existing objects). -
PyArray_CompareUCS4
andPyArray_CompareString
are removed. Use the standard C string comparison functions. -
PyArray_ISPYTHON
is removed as it is misleading, has no known use-cases, and is easy to replace. -
PyArray_FieldNames
is removed, as it is unclear what it would be useful for. It also has incorrect semantics in some possible use-cases. -
PyArray_TypestrConvert
is removed, since it seems a misnomer and unlikely to be used by anyone. If you know the size or are limited to few types, just use it explicitly, otherwise go via Python strings.(gh-25292)
-
PyDataType_GetDatetimeMetaData
is removed, it did not actually do anything since at least NumPy 1.7.(gh-25802)
-
PyArray_GetCastFunc
is removed. Note that custom legacy user dtypes can still provide a castfunc as their implementation, but any access to them is now removed. The reason for this is that NumPy never used these internally for many years. If you use simple numeric types, please just use C casts directly. In case you require an alternative, please let us know so we can create new API such asPyArray_CastBuffer()
which could use old or new cast functions depending on the NumPy version.(gh-25161)
New Features
np.add
was extended to work with unicode
and bytes
dtypes.
(gh-24858)
bitwise_count
function
A new This new function counts the number of 1-bits in a number.
numpy.bitwise_count
works on all the numpy integer types
and integer-like objects.
>>> a = np.array([2**i - 1 for i in range(16)])
>>> np.bitwise_count(a)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
dtype=uint8)
(gh-19355)
macOS Accelerate support, including the ILP64
Support for the updated Accelerate BLAS/LAPACK library, including ILP64 (64-bit integer) support, in macOS 13.3 has been added. This brings arm64 support, and significant performance improvements of up to 10x for commonly used linear algebra operations. When Accelerate is selected at build time, or if no explicit BLAS library selection is done, the 13.3+ version will automatically be used if available.
(gh-24053)
Binary wheels are also available. On macOS >=14.0, users who install NumPy from PyPI will get wheels built against Accelerate rather than OpenBLAS.
(gh-25255)
Option to use weights for quantile and percentile functions
A weights
keyword is now available for numpy.quantile
, numpy.percentile
,
numpy.nanquantile
and numpy.nanpercentile
. Only method="inverted_cdf"
supports weights.
(gh-24254)
Improved CPU optimization tracking
A new tracer mechanism is available which enables tracking of the enabled targets for each optimized function (i.e., that uses hardware-specific SIMD instructions) in the NumPy library. With this enhancement, it becomes possible to precisely monitor the enabled CPU dispatch targets for the dispatched functions.
A new function named opt_func_info
has been added to the new namespace
numpy.lib.introspect
, offering this tracing capability. This function allows
you to retrieve information about the enabled targets based on function names
and data type signatures.
(gh-24420)
f2py
A new Meson backend for f2py
in compile mode (i.e. f2py -c
) now accepts the
--backend meson
option. This is the default option for Python >=3.12.
For older Python versions, f2py
will still default to
--backend distutils
.
To support this in realistic use-cases, in compile mode f2py
takes a
--dep
flag one or many times which maps to dependency()
calls in the
meson
backend, and does nothing in the distutils
backend.
There are no changes for users of f2py
only as a code generator, i.e.
without -c
.
(gh-24532)
bind(c)
support for f2py
Both functions and subroutines can be annotated with bind(c)
. f2py
will handle both the correct type mapping, and preserve the unique label
for other C interfaces.
Note: bind(c, name = 'routine_name_other_than_fortran_routine')
is
not honored by the f2py
bindings by design, since bind(c)
with the
name
is meant to guarantee only the same name in C and Fortran, not in
Python and Fortran.
(gh-24555)
strict
option for several testing functions
A new The strict
keyword is now available for numpy.testing.assert_allclose
,
numpy.testing.assert_equal
, and numpy.testing.assert_array_less
. Setting
strict=True
will disable the broadcasting behaviour for scalars and ensure
that input arrays have the same data type.
(gh-24680, gh-24770, gh-24775)
np.core.umath.find
and np.core.umath.rfind
UFuncs
Add Add two find
and rfind
UFuncs that operate on unicode or byte
strings and are used in np.char
. They operate similar to str.find
and str.rfind
.
(gh-24868)
diagonal
and trace
for numpy.linalg
numpy.linalg.diagonal
and numpy.linalg.trace
have been added, which are
array API standard-compatible variants of numpy.diagonal
and numpy.trace
.
They differ in the default axis selection which define 2-D sub-arrays.
(gh-24887)
long
and ulong
dtypes
New numpy.long
and numpy.ulong
have been added as NumPy integers mapping to
C's long
and unsigned long
. Prior to NumPy 1.24, numpy.long
was an alias
to Python's int
.
(gh-24922)
svdvals
for numpy.linalg
numpy.linalg.svdvals
has been added. It computes singular values for (a stack
of) matrices. Executing np.svdvals(x)
is the same as calling np.svd(x, compute_uv=False, hermitian=False)
. This function is compatible with the array
API standard.
(gh-24940)
isdtype
function
A new numpy.isdtype
was added to provide a canonical way to classify NumPy's
dtypes in compliance with the array API standard.
(gh-25054)
astype
function
A new numpy.astype
was added to provide an array API standard-compatible
alternative to the numpy.ndarray.astype
method.
(gh-25079)
Array API compatible functions' aliases
13 aliases for existing functions were added to improve compatibility with the array API standard:
- Trigonometry:
acos
,acosh
,asin
,asinh
,atan
,atanh
,atan2
. - Bitwise:
bitwise_left_shift
,bitwise_invert
,bitwise_right_shift
. - Misc:
concat
,permute_dims
,pow
. - In
numpy.linalg
:tensordot
,matmul
.
(gh-25086)
unique_*
functions
New The numpy.unique_all
, numpy.unique_counts
, numpy.unique_inverse
, and
numpy.unique_values
functions have been added. They provide functionality of
numpy.unique
with different sets of flags. They are array API
standard-compatible, and because the number of arrays they return does not
depend on the values of input arguments, they are easier to target for JIT
compilation.
(gh-25088)
Matrix transpose support for ndarrays
NumPy now offers support for calculating the matrix transpose of an
array (or stack of arrays). The matrix transpose is equivalent to
swapping the last two axes of an array. Both np.ndarray
and
np.ma.MaskedArray
now expose a .mT
attribute, and there is a
matching new numpy.matrix_transpose
function.
(gh-23762)
numpy.linalg
Array API compatible functions for Six new functions and two aliases were added to improve compatibility with the Array API standard for `numpy.linalg`:
-
numpy.linalg.matrix_norm
- Computes the matrix norm of a matrix (or a stack of matrices). -
numpy.linalg.vector_norm
- Computes the vector norm of a vector (or batch of vectors). -
numpy.vecdot
- Computes the (vector) dot product of two arrays. -
numpy.linalg.vecdot
- An alias fornumpy.vecdot
. -
numpy.linalg.matrix_transpose
- An alias fornumpy.matrix_transpose
.(gh-25155)
-
numpy.linalg.outer
has been added. It computes the outer product of two vectors. It differs fromnumpy.outer
by accepting one-dimensional arrays only. This function is compatible with the array API standard.(gh-25101)
-
numpy.linalg.cross
has been added. It computes the cross product of two (arrays of) 3-dimensional vectors. It differs fromnumpy.cross
by accepting three-dimensional vectors only. This function is compatible with the array API standard.(gh-25145)
correction
argument for var
and std
A A correction
argument was added to numpy.var
and numpy.std
, which is an
array API standard compatible alternative to ddof
. As both arguments serve a
similar purpose, only one of them can be provided at the same time.
(gh-25169)
ndarray.device
and ndarray.to_device
An ndarray.device
attribute and ndarray.to_device
method were added
to numpy.ndarray
for array API standard compatibility.
Additionally, device
keyword-only arguments were added to:
numpy.asarray
, numpy.arange
, numpy.empty
, numpy.empty_like
,
numpy.eye
, numpy.full
, numpy.full_like
, numpy.linspace
, numpy.ones
,
numpy.ones_like
, numpy.zeros
, and numpy.zeros_like
.
For all these new arguments, only device="cpu"
is supported.
(gh-25233)
StringDType has been added to NumPy
We have added a new variable-width UTF-8 encoded string data type, implementing a "NumPy array of Python strings", including support for a user-provided missing data sentinel. It is intended as a drop-in replacement for arrays of Python strings and missing data sentinels using the object dtype. See NEP 55 and the documentation of stringdtype for more details.
(gh-25347)
cholesky
and pinv
New keywords for The upper
and rtol
keywords were added to
numpy.linalg.cholesky
and numpy.linalg.pinv
,
respectively, to improve array API standard compatibility.
For numpy.linalg.pinv
, if neither rcond
nor rtol
is
specified, the rcond
's default is used. We plan to deprecate and
remove rcond
in the future.
(gh-25388)
sort
, argsort
and linalg.matrix_rank
New keywords for New keyword parameters were added to improve array API standard compatibility:
-
rtol
was added tonumpy.linalg.matrix_rank
. -
stable
was added tonumpy.sort
andnumpy.argsort
.
(gh-25437)
numpy.strings
namespace for string ufuncs
New NumPy now implements some string operations as ufuncs. The old np.char
namespace is still available, and where possible the string manipulation
functions in that namespace have been updated to use the new ufuncs,
substantially improving their performance.
Where possible, we suggest updating code to use functions in
np.strings
instead of np.char
. In the future we may deprecate
np.char
in favor of np.strings
.
(gh-25463)
numpy.fft
support for different precisions and in-place calculations
The various FFT routines in numpy.fft
now do their
calculations natively in float, double, or long double precision,
depending on the input precision, instead of always calculating in
double precision. Hence, the calculation will now be less precise for
single and more precise for long double precision. The data type of the
output array will now be adjusted accordingly.
Furthermore, all FFT routines have gained an out
argument that can be
used for in-place calculations.
(gh-25536)
configtool and pkg-config support
A new numpy-config
CLI script is available that can be queried for the
NumPy version and for compile flags needed to use the NumPy C API. This
will allow build systems to better support the use of NumPy as a
dependency. Also, a numpy.pc
pkg-config file is now included with
Numpy. In order to find its location for use with PKG_CONFIG_PATH
, use
numpy-config --pkgconfigdir
.
(gh-25730)
Array API standard support in the main namespace
The main numpy
namespace now supports the array API standard. See
array-api-standard-compatibility
for
details.
(gh-25911)
Improvements
any
, all
, and the logical ufuncs.
Strings are now supported by (gh-25651)
memmap
Integer sequences as the shape argument for numpy.memmap
can now be created with any integer sequence
as the shape
argument, such as a list or numpy array of integers.
Previously, only the types of tuple and int could be used without
raising an error.
(gh-23729)
errstate
is now faster and context safe
The numpy.errstate
context manager/decorator is now faster
and safer. Previously, it was not context safe and had (rare) issues
with thread-safety.
(gh-23936)
AArch64 quicksort speed improved by using Highway's VQSort
The first introduction of the Google Highway library, using VQSort on AArch64. Execution time is improved by up to 16x in some cases, see the MR for benchmark results. Extensions to other platforms will be done in the future.
(gh-24018)
Complex types - underlying C type changes
-
The underlying C types for all of NumPy's complex types have been changed to use C99 complex types.
-
While this change does not affect the memory layout of complex types, it changes the API to be used to directly retrieve or write the real or complex part of the complex number, since direct field access (as in
c.real
orc.imag
) is no longer an option. You can now use utilities provided innumpy/npy_math.h
to do these operations, like this:npy_cdouble c; npy_csetreal(&c, 1.0); npy_csetimag(&c, 0.0); printf("%d + %di\n", npy_creal(c), npy_cimag(c));
-
To ease cross-version compatibility, equivalent macros and a compatibility layer have been added which can be used by downstream packages to continue to support both NumPy 1.x and 2.x. See
complex-numbers
for more info. -
numpy/npy_common.h
now includescomplex.h
, which means thatcomplex
is now a reserved keyword.
(gh-24085)
iso_c_binding
support and improved common blocks for f2py
Previously, users would have to define their own custom f2cmap
file to
use type mappings defined by the Fortran2003 iso_c_binding
intrinsic
module. These type maps are now natively supported by f2py
(gh-24555)
f2py
now handles common
blocks which have kind
specifications from
modules. This further expands the usability of intrinsics like
iso_fortran_env
and iso_c_binding
.
(gh-25186)
str
automatically on third argument to functions like assert_equal
Call The third argument to functions like
numpy.testing.assert_equal
now has str
called on it
automatically. This way it mimics the built-in assert
statement, where
assert_equal(a, b, obj)
works like assert a == b, obj
.
(gh-24877)
atol
/rtol
in isclose
, allclose
Support for array-like The keywords atol
and rtol
in numpy.isclose
and
numpy.allclose
now accept both scalars and arrays. An
array, if given, must broadcast to the shapes of the first two array
arguments.
(gh-24878)
Consistent failure messages in test functions
Previously, some numpy.testing
assertions printed messages
that referred to the actual and desired results as x
and y
. Now,
these values are consistently referred to as ACTUAL
and DESIRED
.
(gh-24931)
s[i] == -1
n-D FFT transforms allow The numpy.fft.fftn
, numpy.fft.ifftn
,
numpy.fft.rfftn
, numpy.fft.irfftn
,
numpy.fft.fft2
, numpy.fft.ifft2
,
numpy.fft.rfft2
and numpy.fft.irfft2
functions now use the whole input array along the axis i
if
s[i] == -1
, in line with the array API standard.
(gh-25495)
Guard PyArrayScalar_VAL and PyUnicodeScalarObject for the limited API
PyUnicodeScalarObject
holds a PyUnicodeObject
, which is not
available when using Py_LIMITED_API
. Add guards to hide it and
consequently also make the PyArrayScalar_VAL
macro hidden.
(gh-25531)
Changes
-
np.gradient()
now returns a tuple rather than a list making the return value immutable.(gh-23861)
-
Being fully context and thread-safe,
np.errstate
can only be entered once now. -
np.setbufsize
is now tied tonp.errstate()
: leaving annp.errstate
context will also reset thebufsize
.(gh-23936)
-
A new public
np.lib.array_utils
submodule has been introduced and it currently contains three functions:byte_bounds
(moved fromnp.lib.utils
),normalize_axis_tuple
andnormalize_axis_index
.(gh-24540)
-
Introduce
numpy.bool
as the new canonical name for NumPy's boolean dtype, and makenumpy.bool\_
an alias to it. Note that until NumPy 1.24,np.bool
was an alias to Python's builtinbool
. The new name helps with array API standard compatibility and is a more intuitive name.(gh-25080)
-
The
dtype.flags
value was previously stored as a signed integer. This means that the aligned dtype struct flag lead to negative flags being set (-128 rather than 128). This flag is now stored unsigned (positive). Code which checks flags manually may need to adapt. This may include code compiled with Cython 0.29.x.(gh-25816)
Representation of NumPy scalars changed
As per NEP 51, the scalar representation has been updated to include the type information to avoid confusion with Python scalars.
Scalars are now printed as np.float64(3.0)
rather than just 3.0
.
This may disrupt workflows that store representations of numbers (e.g.,
to files) making it harder to read them. They should be stored as
explicit strings, for example by using str()
or f"{scalar!s}"
. For
the time being, affected users can use
np.set_printoptions(legacy="1.25")
to get the old behavior (with
possibly a few exceptions). Documentation of downstream projects may
require larger updates, if code snippets are tested. We are working on
tooling for
doctest-plus
to facilitate updates.
(gh-22449)
Truthiness of NumPy strings changed
NumPy strings previously were inconsistent about how they defined if the
string is True
or False
and the definition did not match the one
used by Python. Strings are now considered True
when they are
non-empty and False
when they are empty. This changes the following
distinct cases:
- Casts from string to boolean were previously roughly equivalent to
string_array.astype(np.int64).astype(bool)
, meaning that only valid integers could be cast. Now a string of"0"
will be consideredTrue
since it is not empty. If you need the old behavior, you may use the above step (casting to integer first) orstring_array == "0"
(if the input is only ever0
or1
). To get the new result on old NumPy versions usestring_array != ""
. -
np.nonzero(string_array)
previously ignored whitespace so that a string only containing whitespace was consideredFalse
. Whitespace is now consideredTrue
.
This change does not affect np.loadtxt
, np.fromstring
, or
np.genfromtxt
. The first two still use the integer definition, while
genfromtxt
continues to match for "true"
(ignoring case). However,
if np.bool_
is used as a converter the result will change.
The change does affect np.fromregex
as it uses direct assignments.
(gh-23871)
mean
keyword was added to var and std function
A Often when the standard deviation is needed the mean is also needed. The
same holds for the variance and the mean. Until now the mean is then
calculated twice, the change introduced here for the numpy.var
and
numpy.std
functions allows for passing in a precalculated mean as an keyword
argument. See the docstrings for details and an example illustrating the
speed-up.
(gh-24126)
Remove datetime64 deprecation warning when constructing with timezone
The numpy.datetime64
method now issues a UserWarning rather than a
DeprecationWarning whenever a timezone is included in the datetime string that
is provided.
(gh-24193)
Default integer dtype is now 64-bit on 64-bit Windows
The default NumPy integer is now 64-bit on all 64-bit systems as the
historic 32-bit default on Windows was a common source of issues. Most
users should not notice this. The main issues may occur with code
interfacing with libraries written in a compiled language like C. For
more information see migration_windows_int64
.
(gh-24224)
numpy.core
to numpy._core
Renamed Accessing numpy.core
now emits a DeprecationWarning. In practice we
have found that most downstream usage of numpy.core
was to access
functionality that is available in the main numpy
namespace. If for
some reason you are using functionality in numpy.core
that is not
available in the main numpy
namespace, this means you are likely using
private NumPy internals. You can still access these internals via
numpy._core
without a deprecation warning but we do not provide any
backward compatibility guarantees for NumPy internals. Please open an
issue if you think a mistake was made and something needs to be made
public.
(gh-24634)
The "relaxed strides" debug build option, which was previously enabled
through the NPY_RELAXED_STRIDES_DEBUG
environment variable or the
-Drelaxed-strides-debug
config-settings flag has been removed.
(gh-24717)
np.intp
/np.uintp
(almost never a change)
Redefinition of Due to the actual use of these types almost always matching the use of
size_t
/Py_ssize_t
this is now the definition in C. Previously, it
matched intptr_t
and uintptr_t
which would often have been subtly
incorrect. This has no effect on the vast majority of machines since the
size of these types only differ on extremely niche platforms.
However, it means that:
- Pointers may not necessarily fit into an
intp
typed array anymore. Thep
andP
character codes can still be used, however. - Creating
intptr_t
oruintptr_t
typed arrays in C remains possible in a cross-platform way viaPyArray_DescrFromType('p')
. - The new character codes
nN
were introduced. - It is now correct to use the Python C-API functions when parsing to
npy_intp
typed arguments.
(gh-24888)
numpy.fft.helper
made private
numpy.fft.helper
was renamed to numpy.fft._helper
to indicate that
it is a private submodule. All public functions exported by it should be
accessed from numpy.fft
.
(gh-24945)
numpy.linalg.linalg
made private
numpy.linalg.linalg
was renamed to numpy.linalg._linalg
to indicate
that it is a private submodule. All public functions exported by it
should be accessed from numpy.linalg
.
(gh-24946)
axis=None
Out-of-bound axis not the same as In some cases axis=32
or for concatenate any large value was the same
as axis=None
. Except for concatenate
this was deprecate. Any out of
bound axis value will now error, make sure to use axis=None
.
(gh-25149)
copy
keyword meaning for array
and asarray
constructors
New Now numpy.array
and numpy.asarray
support
three values for copy
parameter:
-
None
- A copy will only be made if it is necessary. -
True
- Always make a copy. -
False
- Never make a copy. If a copy is required aValueError
is raised.
The meaning of False
changed as it now raises an exception if a copy
is needed.
(gh-25168)
__array__
special method now takes a copy
keyword argument.
The NumPy will pass copy
to the __array__
special method in situations
where it would be set to a non-default value (e.g. in a call to
np.asarray(some_object, copy=False)
). Currently, if an unexpected
keyword argument error is raised after this, NumPy will print a warning
and re-try without the copy
keyword argument. Implementations of
objects implementing the __array__
protocol should accept a copy
keyword argument with the same meaning as when passed to
numpy.array
or numpy.asarray
.
(gh-25168)
numpy.dtype
with strings with commas
Cleanup of initialization of The interpretation of strings with commas is changed slightly, in that a
trailing comma will now always create a structured dtype. E.g., where
previously np.dtype("i")
and np.dtype("i,")
were treated as
identical, now np.dtype("i,")
will create a structured dtype, with a
single field. This is analogous to np.dtype("i,i")
creating a
structured dtype with two fields, and makes the behaviour consistent
with that expected of tuples.
At the same time, the use of single number surrounded by parenthesis to
indicate a sub-array shape, like in np.dtype("(2)i,")
, is deprecated.
Instead; one should use np.dtype("(2,)i")
or np.dtype("2i")
.
Eventually, using a number in parentheses will raise an exception, like
is the case for initializations without a comma, like
np.dtype("(2)i")
.
(gh-25434)
Change in how complex sign is calculated
Following the array API standard, the complex sign is now calculated as
z / |z|
(instead of the rather less logical case where the sign of the
real part was taken, unless the real part was zero, in which case the
sign of the imaginary part was returned). Like for real numbers, zero is
returned if z==0
.
(gh-25441)
Return types of functions that returned a list of arrays
Functions that returned a list of ndarrays have been changed to return a
tuple of ndarrays instead. Returning tuples consistently whenever a
sequence of arrays is returned makes it easier for JIT compilers like
Numba, as well as for static type checkers in some cases, to support
these functions. Changed functions are: numpy.atleast_1d
, numpy.atleast_2d
,
numpy.atleast_3d
, numpy.broadcast_arrays
, numpy.meshgrid
,
numpy.ogrid
, numpy.histogramdd
.
np.unique
return_inverse
shape for multi-dimensional inputs
When multi-dimensional inputs are passed to np.unique
with
return_inverse=True
, the unique_inverse
output is now shaped such
that the input can be reconstructed directly using
np.take(unique, unique_inverse)
when axis=None
, and
np.take_along_axis(unique, unique_inverse, axis=axis)
otherwise.
any
and all
return booleans for object arrays
The any
and all
functions and methods now return booleans also for
object arrays. Previously, they did a reduction which behaved like the
Python or
and and
operators which evaluates to one of the arguments.
You can use np.logical_or.reduce
and np.logical_and.reduce
to
achieve the previous behavior.
(gh-25712)
np.can_cast
cannot be called on Python int, float, or complex
np.can_cast
cannot be called with Python int, float, or complex
instances anymore. This is because NEP 50 means that the result of
can_cast
must not depend on the value passed in. Unfortunately, for
Python scalars whether a cast should be considered "same_kind"
or
"safe"
may depend on the context and value so that this is currently
not implemented. In some cases, this means you may have to add a
specific path for: if type(obj) in (int, float, complex): ...
.
(gh-26393)
Checksums
MD5
fcda027f9735771088e607161c913094 numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl
1c381a5af3e6b945c6937ab3c6e2de09 numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
6258de3c0599f8e3674e11898f2dd71c numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl
aa4d28b404566dc9f5c34a31c6cd7b23 numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl
6b83ba81bdc750ef9924e3dc6f7c93be numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
3d129fe67d99e0aad451742abb963ffa numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
24a060577965bd2a573ed87cbd207b4c numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl
b00832f558669aacf855c4f5e9cf31d1 numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
cfe7420d294c583b90cfe07b730136dc numpy-2.0.0-cp310-cp310-win32.whl
cff9da6b9fe5ad3b05dd3526dff00ac2 numpy-2.0.0-cp310-cp310-win_amd64.whl
f390e03564df5ea37a97ac10cf0cbb00 numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl
a006b081decba286a321de67a1abe246 numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
6aea3e8589e33349b8170524af5a2e44 numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl
eea8146c5dc2a306333bfea1f01f7a37 numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl
e96c2af477c970c8ff50ecb5d1cf754f numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d065256e02a1d410d0db2577bb8fd9a4 numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
98c570b79459342c219590c5af38d527 numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl
dc435751cb926f53a9fc457f35146527 numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
aaa4b435d29022ceacb4e3dcbd43d11a numpy-2.0.0-cp311-cp311-win32.whl
9ff8be4f581d86b2f181fe905491b19b numpy-2.0.0-cp311-cp311-win_amd64.whl
1c9519c5e6a0c5a99715e51ac3b7c932 numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl
b0f26e8728523d716f5165953b35244f numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
029703d0ff0e96c603c91f611926ef17 numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl
2231ecbb380c70ddf462e9671d06612c numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl
4153b50c1a3647ca58f1084fcaf3e4c6 numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
82cba3915234f8018fd754ffc45e95b0 numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
249047dd7255a5fcf5c45614ba211e10 numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl
f7581ebfe0c9d4ae4f3b6ea09c19eea7 numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
8a0dbcd919d1d959f1846a00ebb05162 numpy-2.0.0-cp312-cp312-win32.whl
22aabdfd85ed34f02a7cdacff399c5d9 numpy-2.0.0-cp312-cp312-win_amd64.whl
1fce84122c393e05b69e2ec53ecd1137 numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl
81e4c1152274d85813bf14814ad4d359 numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl
5eab1a2b427b590d2bc9d8ecd330fc21 numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl
ab967929693baf2d2bfb00c53413ad2b numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl
85d2971cd78800663766f46ba312d356 numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
7e831fcf9cff5317429786a3bd123671 numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
03a6426ca86ad53567e3ef61bc766013 numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl
b30af2d2b99468538f45e6769f9fee2b numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl
cc9a8db8d131fb5a387e2c1342ab0065 numpy-2.0.0-cp39-cp39-win32.whl
9843951308fa31c5e36c4c6a0b090308 numpy-2.0.0-cp39-cp39-win_amd64.whl
5021eb5e225bff3e05a38a565daf8852 numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
99186fe49ac7931d3e92e8993c2faa92 numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
c39f0ab6e07d42708550899951b852b8 numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cbf151633948e90c93dd988777750961 numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl
a180aaba9982c6e15da6db62dab5eb4e numpy-2.0.0.tar.gz
SHA256
04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl
2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2 numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238 numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl
8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514 numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl
79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196 numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1 numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl
acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787 numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98 numpy-2.0.0-cp310-cp310-win32.whl
ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b numpy-2.0.0-cp310-cp310-win_amd64.whl
ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5 numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl
e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289 numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609 numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl
b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871 numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl
5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4 numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581 numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995 numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl
0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f numpy-2.0.0-cp311-cp311-win32.whl
fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c numpy-2.0.0-cp311-cp311-win_amd64.whl
354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl
4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85 numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2 numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl
84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl
c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2 numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95 numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl
feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9 numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54 numpy-2.0.0-cp312-cp312-win32.whl
a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df numpy-2.0.0-cp312-cp312-win_amd64.whl
e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl
4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl
903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl
3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86 numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl
1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4 numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl
9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44 numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl
63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275 numpy-2.0.0-cp39-cp39-win32.whl
3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65 numpy-2.0.0-cp39-cp39-win_amd64.whl
9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6 numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9 numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl
cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864 numpy-2.0.0.tar.gz
v1.26.4
NumPy 1.26.4 Release Notes
NumPy 1.26.4 is a maintenance release that fixes bugs and regressions discovered after the 1.26.3 release. The Python versions supported by this release are 3.9-3.12. This is the last planned release in the 1.26.x series.
Contributors
A total of 13 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- Charles Harris
- Elliott Sales de Andrade
- Lucas Colley +
- Mark Ryan +
- Matti Picus
- Nathan Goldbaum
- Ola x Nilsson +
- Pieter Eendebak
- Ralf Gommers
- Sayed Adel
- Sebastian Berg
- Stefan van der Walt
- Stefano Rivera
Pull requests merged
A total of 19 pull requests were merged for this release.
- #25323: BUG: Restore missing asstr import
- #25523: MAINT: prepare 1.26.x for further development
-
#25539: BUG:
numpy.array_api
: fixlinalg.cholesky
upper decomp... - #25584: CI: Bump azure pipeline timeout to 120 minutes
- #25585: MAINT, BLD: Fix unused inline functions warnings on clang
- #25599: BLD: include fix for MinGW platform detection
- #25618: TST: Fix test_numeric on riscv64
- #25619: BLD: fix building for windows ARM64
-
#25620: MAINT: add
newaxis
to__all__
innumpy.array_api
- #25630: BUG: Use large file fallocate on 32 bit linux platforms
- #25643: TST: Fix test_warning_calls on Python 3.12
- #25645: TST: Bump pytz to 2023.3.post1
- #25658: BUG: Fix AVX512 build flags on Intel Classic Compiler
-
#25670: BLD: fix potential issue with escape sequences in
__config__.py
- #25718: CI: pin cygwin python to 3.9.16-1 and fix typing tests [skip...
- #25720: MAINT: Bump cibuildwheel to v2.16.4
- #25748: BLD: unvendor meson-python on 1.26.x and upgrade to meson-python...
- #25755: MAINT: Include header defining backtrace
- #25756: BUG: Fix np.quantile([Fraction(2,1)], 0.5) (#24711)
Checksums
MD5
90f33cdd8934cd07192d6ede114d8d4d numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl
63ac60767f6724490e587f6010bd6839 numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl
ad4e82b225aaaf5898ea9798b50978d8 numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d428e3da2df4fa359313348302cf003a numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
89937c3bb596193f8ca9eae2ff84181e numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl
de4f9da0a4e6dfd4cec39c7ad5139803 numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl
2c1f73fd9b3acf4b9b0c23e985cdd38f numpy-1.26.4-cp310-cp310-win32.whl
920ad1f50e478b1a877fe7b7a46cc520 numpy-1.26.4-cp310-cp310-win_amd64.whl
719d1ff12db38903dcfd6749078fb11d numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl
eb601e80194d2e1c00d8daedd8dc68c4 numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl
71a7ab11996fa370dc28e28731bd5c32 numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
eb0cdd03e1ee2eb45c57c7340c98cf48 numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9d4ae1b0b27a625400f81ed1846a5667 numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl
1b6771350d2f496157430437a895ba4b numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl
1e4a18612ee4d0e54e0833574ebc6d25 numpy-1.26.4-cp311-cp311-win32.whl
5fd325dd8704023c1110835d7a1b095a numpy-1.26.4-cp311-cp311-win_amd64.whl
d95ce582923d24dbddbc108aa5fd2128 numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl
6f16f3d70e0d95ce2b032167c546cc95 numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl
5369536d4c45fbe384147ff23185b48a numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
1ceb224096686831ad731e472b65e96a numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cd8d3c00bbc89f9bc07e2df762f9e2ae numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl
5bd81ce840bb2e42befe01efb0402b79 numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl
2cc3b0757228078395da3efa3dc99f23 numpy-1.26.4-cp312-cp312-win32.whl
305155bd5ae879344c58968879584ed1 numpy-1.26.4-cp312-cp312-win_amd64.whl
ec2310f67215743e9c5d16b6c9fb87b6 numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl
406aea6081c1affbebdb6ad56b5deaf4 numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl
fee12f0a3cbac7bbf1a1c2d82d3b02a9 numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
baf4b7143c7b9ce170e62b33380fb573 numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
376ff29f90b7840ae19ecd59ad1ddf53 numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl
86785b3a7cd156c08c2ebc26f7816fb3 numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl
ab8a9ab69f16b7005f238cda76bc0bac numpy-1.26.4-cp39-cp39-win32.whl
fafa4453e820c7ff40907e5dc79d8199 numpy-1.26.4-cp39-cp39-win_amd64.whl
7f13e2f07bd3e4a439ade0e4d27905c6 numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
928954b41c1cd0e856f1a31d41722661 numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
57bbd5c0b3848d804c416cbcab4a0ae8 numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl
19550cbe7bedd96a928da9d4ad69509d numpy-1.26.4.tar.gz
SHA256
9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl
2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl
d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl
a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl
bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 numpy-1.26.4-cp310-cp310-win32.whl
b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 numpy-1.26.4-cp310-cp310-win_amd64.whl
4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl
edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl
7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl
60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl
1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 numpy-1.26.4-cp311-cp311-win32.whl
cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 numpy-1.26.4-cp311-cp311-win_amd64.whl
b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl
03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl
9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl
1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl
50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 numpy-1.26.4-cp312-cp312-win32.whl
08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 numpy-1.26.4-cp312-cp312-win_amd64.whl
7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl
52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl
d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl
47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl
a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 numpy-1.26.4-cp39-cp39-win32.whl
3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea numpy-1.26.4-cp39-cp39-win_amd64.whl
afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl
2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 numpy-1.26.4.tar.gz
v1.26.3
NumPy 1.26.3 Release Notes
NumPy 1.26.3 is a maintenance release that fixes bugs and regressions discovered after the 1.26.2 release. The most notable changes are the f2py bug fixes. The Python versions supported by this release are 3.9-3.12.
Compatibility
f2py
will no longer accept ambiguous -m
and .pyf
CLI combinations.
When more than one .pyf
file is passed, an error is raised. When both
-m
and a .pyf
is passed, a warning is emitted and the -m
provided
name is ignored.
Improvements
f2py
now handles common
blocks which have kind
specifications from
modules. This further expands the usability of intrinsics like
iso_fortran_env
and iso_c_binding
.
Contributors
A total of 18 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- @DWesl
- @Illviljan
- Alexander Grund
- Andrea Bianchi +
- Charles Harris
- Daniel Vanzo
- Johann Rohwer +
- Matti Picus
- Nathan Goldbaum
- Peter Hawkins
- Raghuveer Devulapalli
- Ralf Gommers
- Rohit Goswami
- Sayed Adel
- Sebastian Berg
- Stefano Rivera +
- Thomas A Caswell
- matoro
Pull requests merged
A total of 42 pull requests were merged for this release.
- #25130: MAINT: prepare 1.26.x for further development
-
#25188: TYP: add None to
__getitem__
innumpy.array_api
- #25189: BLD,BUG: quadmath required where available [f2py]
- #25190: BUG: alpha doesn't use REAL(10)
- #25191: BUG: Fix FP overflow error in division when the divisor is scalar
- #25192: MAINT: Pin scipy-openblas version.
- #25201: BUG: Fix f2py to enable use of string optional inout argument
- #25202: BUG: Fix -fsanitize=alignment issue in numpy/_core/src/multiarray/arraytypes.c.src
- #25203: TST: Explicitly pass NumPy path to cython during tests (also...
-
#25204: BUG: fix issues with
newaxis
andlinalg.solve
innumpy.array_api
- #25205: BUG: Disallow shadowed modulenames
- #25217: BUG: Handle common blocks with kind specifications from modules
- #25218: BUG: Fix moving compiled executable to root with f2py -c on Windows
- #25219: BUG: Fix single to half-precision conversion on PPC64/VSX3
- #25227: TST: f2py: fix issue in test skip condition
- #25240: Revert "MAINT: Pin scipy-openblas version."
-
#25249: MAINT: do not use
long
type - #25377: TST: PyPy needs another gc.collect on latest versions
- #25378: CI: Install Lapack runtime on Cygwin.
- #25379: MAINT: Bump conda-incubator/setup-miniconda from 2.2.0 to 3.0.1
- #25380: BLD: update vendored Meson for AIX shared library fix
-
#25419: MAINT: Init
base
in cpu_avx512_kn - #25420: BUG: Fix failing test_features on SapphireRapids
- #25422: BUG: Fix non-contiguous memory load when ARM/Neon is enabled
- #25428: MAINT,BUG: Never import distutils above 3.12 [f2py]
- #25452: MAINT: make the import-time check for old Accelerate more specific
- #25458: BUG: fix macOS version checks for Accelerate support
- #25465: MAINT: Bump actions/setup-node and larsoner/circleci-artifacts-redirector-action
- #25466: BUG: avoid seg fault from OOB access in RandomState.set_state()
- #25467: BUG: Fix two errors related to not checking for failed allocations
-
#25468: BUG: Fix regression with
f2py
wrappers when modules and subroutines... - #25475: BUG: Fix build issues on SPR
- #25478: BLD: fix uninitialized variable warnings from simd/neon/memory.h
-
#25480: BUG: Handle
iso_c_type
mappings more consistently - #25481: BUG: Fix module name bug in signature files [urgent] [f2py]
- #25482: BUG: Handle .pyf.src and fix SciPy [urgent]
-
#25483: DOC:
f2py
rewrite withmeson
details - #25485: BUG: Add external library handling for meson [f2py]
- #25486: MAINT: Run f2py's meson backend with the same python that ran...
-
#25489: MAINT: Update
numpy/f2py/_backends
from main. -
#25490: MAINT: Easy updates of
f2py/*.py
from main. - #25491: MAINT: Update crackfortran.py and f2py2e.py from main
Checksums
MD5
7660db27715df261948e7f0f13634f16 numpy-1.26.3-cp310-cp310-macosx_10_9_x86_64.whl
98d5b98c822de4bed0cf1b0b8f367192 numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl
b71cd0710cec5460292a97a02fa349cd numpy-1.26.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
0f98a05c92598f849b1be2595f4a52a8 numpy-1.26.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b866c6aea8070c0753b776d2b521e875 numpy-1.26.3-cp310-cp310-musllinux_1_1_aarch64.whl
cfdde5868e469fb27655ea73b0b9593b numpy-1.26.3-cp310-cp310-musllinux_1_1_x86_64.whl
2655440d61671b5e32b049d30397c58f numpy-1.26.3-cp310-cp310-win32.whl
7718a5d33344784ca7821f3bdd467550 numpy-1.26.3-cp310-cp310-win_amd64.whl
28e4b2ed9192c392f792d88b3c246d1c numpy-1.26.3-cp311-cp311-macosx_10_9_x86_64.whl
fb1ae72749463e2c82f0127699728364 numpy-1.26.3-cp311-cp311-macosx_11_0_arm64.whl
304dec822b508a1d495917610e7562bf numpy-1.26.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2cc0d8b073dfd55946a60ba8ed4369f6 numpy-1.26.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
c99962375c599501820899c8ccab6960 numpy-1.26.3-cp311-cp311-musllinux_1_1_aarch64.whl
47ed42d067ce4863bbf1f40da61ba7d1 numpy-1.26.3-cp311-cp311-musllinux_1_1_x86_64.whl
3ab3757255feb54ca3793fb9db226586 numpy-1.26.3-cp311-cp311-win32.whl
c33f2a4518bae535645357a08a93be1a numpy-1.26.3-cp311-cp311-win_amd64.whl
bea43600aaff3a4d9978611ccfa44198 numpy-1.26.3-cp312-cp312-macosx_10_9_x86_64.whl
c678d909ebe737fdabf215d8622ce2a3 numpy-1.26.3-cp312-cp312-macosx_11_0_arm64.whl
9f21f1875c92425cec1060564b3abb1c numpy-1.26.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
c44a1998965d45ec136078ee09d880f2 numpy-1.26.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9274f5c51fa4f3c8fac5efa3d78acd63 numpy-1.26.3-cp312-cp312-musllinux_1_1_aarch64.whl
07c9f8f86f45077febc46c87ebc0b644 numpy-1.26.3-cp312-cp312-musllinux_1_1_x86_64.whl
a4857b2f7b6a23bca41178bd344bb28a numpy-1.26.3-cp312-cp312-win32.whl
495d9534961d7b10f16fec4515a3d72b numpy-1.26.3-cp312-cp312-win_amd64.whl
6494f2d94fd1f184923a33e634692b5e numpy-1.26.3-cp39-cp39-macosx_10_9_x86_64.whl
515a7314a0ff6aaba8d53a7a1aaa73ab numpy-1.26.3-cp39-cp39-macosx_11_0_arm64.whl
c856adc6a6a78773c43e9c738d662ed5 numpy-1.26.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
09848456158a01feff28f88c6106aef1 numpy-1.26.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
adec00ea2bc98580a436f82e188c0e2f numpy-1.26.3-cp39-cp39-musllinux_1_1_aarch64.whl
718bd35dd0431a6434bb30bf8d91d77d numpy-1.26.3-cp39-cp39-musllinux_1_1_x86_64.whl
e813aa59cb807efb4a8fee52a6dd41ba numpy-1.26.3-cp39-cp39-win32.whl
08e1b0973d0ae5976b38563eaec1253f numpy-1.26.3-cp39-cp39-win_amd64.whl
e8887a14750161709636e9fb87df4f36 numpy-1.26.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
0bdb19040525451553fb5758b65caf4c numpy-1.26.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b931c14d06cc37d85d63ed1ddd88e875 numpy-1.26.3-pp39-pypy39_pp73-win_amd64.whl
1c915dc6c36dd4c674d9379e9470ff8b numpy-1.26.3.tar.gz
SHA256
806dd64230dbbfaca8a27faa64e2f414bf1c6622ab78cc4264f7f5f028fee3bf numpy-1.26.3-cp310-cp310-macosx_10_9_x86_64.whl
02f98011ba4ab17f46f80f7f8f1c291ee7d855fcef0a5a98db80767a468c85cd numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl
6d45b3ec2faed4baca41c76617fcdcfa4f684ff7a151ce6fc78ad3b6e85af0a6 numpy-1.26.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
bdd2b45bf079d9ad90377048e2747a0c82351989a2165821f0c96831b4a2a54b numpy-1.26.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
211ddd1e94817ed2d175b60b6374120244a4dd2287f4ece45d49228b4d529178 numpy-1.26.3-cp310-cp310-musllinux_1_1_aarch64.whl
b1240f767f69d7c4c8a29adde2310b871153df9b26b5cb2b54a561ac85146485 numpy-1.26.3-cp310-cp310-musllinux_1_1_x86_64.whl
21a9484e75ad018974a2fdaa216524d64ed4212e418e0a551a2d83403b0531d3 numpy-1.26.3-cp310-cp310-win32.whl
9e1591f6ae98bcfac2a4bbf9221c0b92ab49762228f38287f6eeb5f3f55905ce numpy-1.26.3-cp310-cp310-win_amd64.whl
b831295e5472954104ecb46cd98c08b98b49c69fdb7040483aff799a755a7374 numpy-1.26.3-cp311-cp311-macosx_10_9_x86_64.whl
9e87562b91f68dd8b1c39149d0323b42e0082db7ddb8e934ab4c292094d575d6 numpy-1.26.3-cp311-cp311-macosx_11_0_arm64.whl
8c66d6fec467e8c0f975818c1796d25c53521124b7cfb760114be0abad53a0a2 numpy-1.26.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f25e2811a9c932e43943a2615e65fc487a0b6b49218899e62e426e7f0a57eeda numpy-1.26.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
af36e0aa45e25c9f57bf684b1175e59ea05d9a7d3e8e87b7ae1a1da246f2767e numpy-1.26.3-cp311-cp311-musllinux_1_1_aarch64.whl
51c7f1b344f302067b02e0f5b5d2daa9ed4a721cf49f070280ac202738ea7f00 numpy-1.26.3-cp311-cp311-musllinux_1_1_x86_64.whl
7ca4f24341df071877849eb2034948459ce3a07915c2734f1abb4018d9c49d7b numpy-1.26.3-cp311-cp311-win32.whl
39763aee6dfdd4878032361b30b2b12593fb445ddb66bbac802e2113eb8a6ac4 numpy-1.26.3-cp311-cp311-win_amd64.whl
a7081fd19a6d573e1a05e600c82a1c421011db7935ed0d5c483e9dd96b99cf13 numpy-1.26.3-cp312-cp312-macosx_10_9_x86_64.whl
12c70ac274b32bc00c7f61b515126c9205323703abb99cd41836e8125ea0043e numpy-1.26.3-cp312-cp312-macosx_11_0_arm64.whl
7f784e13e598e9594750b2ef6729bcd5a47f6cfe4a12cca13def35e06d8163e3 numpy-1.26.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5f24750ef94d56ce6e33e4019a8a4d68cfdb1ef661a52cdaee628a56d2437419 numpy-1.26.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
77810ef29e0fb1d289d225cabb9ee6cf4d11978a00bb99f7f8ec2132a84e0166 numpy-1.26.3-cp312-cp312-musllinux_1_1_aarch64.whl
8ed07a90f5450d99dad60d3799f9c03c6566709bd53b497eb9ccad9a55867f36 numpy-1.26.3-cp312-cp312-musllinux_1_1_x86_64.whl
f73497e8c38295aaa4741bdfa4fda1a5aedda5473074369eca10626835445511 numpy-1.26.3-cp312-cp312-win32.whl
da4b0c6c699a0ad73c810736303f7fbae483bcb012e38d7eb06a5e3b432c981b numpy-1.26.3-cp312-cp312-win_amd64.whl
1666f634cb3c80ccbd77ec97bc17337718f56d6658acf5d3b906ca03e90ce87f numpy-1.26.3-cp39-cp39-macosx_10_9_x86_64.whl
18c3319a7d39b2c6a9e3bb75aab2304ab79a811ac0168a671a62e6346c29b03f numpy-1.26.3-cp39-cp39-macosx_11_0_arm64.whl
0b7e807d6888da0db6e7e75838444d62495e2b588b99e90dd80c3459594e857b numpy-1.26.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
b4d362e17bcb0011738c2d83e0a65ea8ce627057b2fdda37678f4374a382a137 numpy-1.26.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b8c275f0ae90069496068c714387b4a0eba5d531aace269559ff2b43655edd58 numpy-1.26.3-cp39-cp39-musllinux_1_1_aarch64.whl
cc0743f0302b94f397a4a65a660d4cd24267439eb16493fb3caad2e4389bccbb numpy-1.26.3-cp39-cp39-musllinux_1_1_x86_64.whl
9bc6d1a7f8cedd519c4b7b1156d98e051b726bf160715b769106661d567b3f03 numpy-1.26.3-cp39-cp39-win32.whl
867e3644e208c8922a3be26fc6bbf112a035f50f0a86497f98f228c50c607bb2 numpy-1.26.3-cp39-cp39-win_amd64.whl
3c67423b3703f8fbd90f5adaa37f85b5794d3366948efe9a5190a5f3a83fc34e numpy-1.26.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
46f47ee566d98849323f01b349d58f2557f02167ee301e5e28809a8c0e27a2d0 numpy-1.26.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a8474703bffc65ca15853d5fd4d06b18138ae90c17c8d12169968e998e448bb5 numpy-1.26.3-pp39-pypy39_pp73-win_amd64.whl
697df43e2b6310ecc9d95f05d5ef20eacc09c7c4ecc9da3f235d39e71b7da1e4 numpy-1.26.3.tar.gz
v1.26.2
: 1.26.2 release
NumPy 1.26.2 Release Notes
NumPy 1.26.2 is a maintenance release that fixes bugs and regressions discovered after the 1.26.1 release. 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.
Contributors
A total of 13 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- @stefan6419846
- @thalassemia +
- Andrew Nelson
- Charles Bousseau +
- Charles Harris
- Marcel Bargull +
- Mark Mentovai +
- Matti Picus
- Nathan Goldbaum
- Ralf Gommers
- Sayed Adel
- Sebastian Berg
- William Ayd +
Pull requests merged
A total of 25 pull requests were merged for this release.
- #24814: MAINT: align test_dispatcher s390x targets with _umath_tests_mtargets
- #24929: MAINT: prepare 1.26.x for further development
- #24955: ENH: Add Cython enumeration for NPY_FR_GENERIC
- #24962: REL: Remove Python upper version from the release branch
- #24971: BLD: Use the correct Python interpreter when running tempita.py
-
#24972: MAINT: Remove unhelpful error replacements from
import_array()
- #24977: BLD: use classic linker on macOS, the new one in XCode 15 has...
- #25003: BLD: musllinux_aarch64 [wheel build]
- #25043: MAINT: Update mailmap
- #25049: MAINT: Update meson build infrastructure.
- #25071: MAINT: Split up .github/workflows to match main
- #25083: BUG: Backport fix build on ppc64 when the baseline set to Power9...
- #25093: BLD: Fix features.h detection for Meson builds [1.26.x Backport]
- #25095: BUG: Avoid intp conversion regression in Cython 3 (backport)
- #25107: CI: remove obsolete jobs, and move macOS and conda Azure jobs...
- #25108: CI: Add linux_qemu action and remove travis testing.
- #25112: MAINT: Update .spin/cmds.py from main.
- #25113: DOC: Visually divide main license and bundled licenses in wheels
-
#25115: MAINT: Add missing
noexcept
to shuffle helpers - #25116: DOC: Fix license identifier for OpenBLAS
- #25117: BLD: improve detection of Netlib libblas/libcblas/liblapack
- #25118: MAINT: Make bitfield integers unsigned
- #25119: BUG: Make n a long int for np.random.multinomial
-
#25120: BLD: change default of the
allow-noblas
option to true. -
#25121: BUG: ensure passing
np.dtype
to itself doesn't crash
Checksums
MD5
1a5dc6b5b3bf11ad40a59eedb3b69fa1 numpy-1.26.2-cp310-cp310-macosx_10_9_x86_64.whl
4b741c6dfe4e6e22e34e9c5c788d4f04 numpy-1.26.2-cp310-cp310-macosx_11_0_arm64.whl
2953687fb26e1dd8a2d1bb7109551fcd numpy-1.26.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
ea9127a3a03f27fd101c62425c661d8d numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7a6be7c6c1cc3e1ff73f64052fe30677 numpy-1.26.2-cp310-cp310-musllinux_1_1_aarch64.whl
4f45d3f69f54fd1638609fde34c33a5c numpy-1.26.2-cp310-cp310-musllinux_1_1_x86_64.whl
f22f5ea26c86eb126ff502fff75d6c21 numpy-1.26.2-cp310-cp310-win32.whl
49871452488e1a55d15ab54c6f3e546e numpy-1.26.2-cp310-cp310-win_amd64.whl
676740bf60fb1c8f5a6b31e00b9a4e9b numpy-1.26.2-cp311-cp311-macosx_10_9_x86_64.whl
7170545dcc2a38a1c2386a6081043b64 numpy-1.26.2-cp311-cp311-macosx_11_0_arm64.whl
feae1190c73d811e2e7ebcad4baf6edf numpy-1.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
03131896abade61b77e0f6e53abb988a numpy-1.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f160632f128a3fd46787aa02d8731fbb numpy-1.26.2-cp311-cp311-musllinux_1_1_aarch64.whl
014250db593d589b5533ef7127839c46 numpy-1.26.2-cp311-cp311-musllinux_1_1_x86_64.whl
fb437346dac24d0cb23f5314db043c8b numpy-1.26.2-cp311-cp311-win32.whl
7359adc233874898ea768cd4aec28bb3 numpy-1.26.2-cp311-cp311-win_amd64.whl
207a678bea75227428e7fb84d4dc457a numpy-1.26.2-cp312-cp312-macosx_10_9_x86_64.whl
302ff6cc047a408cdf21981bd7b26056 numpy-1.26.2-cp312-cp312-macosx_11_0_arm64.whl
7526faaea58c76aed395c7128dd6e14d numpy-1.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
28d3b1943d3a8ad4bbb2ae9da0a77cb9 numpy-1.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
d91f5b2bb2c931e41ae7c80ec7509a31 numpy-1.26.2-cp312-cp312-musllinux_1_1_aarch64.whl
b2504d4239419f012c08fa1eab12f940 numpy-1.26.2-cp312-cp312-musllinux_1_1_x86_64.whl
57944ba30adc07f33e83a9b45f5c625a numpy-1.26.2-cp312-cp312-win32.whl
fe38cd95bbee405ce0cf51c8753a2676 numpy-1.26.2-cp312-cp312-win_amd64.whl
28e1bc3efaf89cf6f0a2b616c0e16401 numpy-1.26.2-cp39-cp39-macosx_10_9_x86_64.whl
9932ccff54855f12ee24f60528279bf1 numpy-1.26.2-cp39-cp39-macosx_11_0_arm64.whl
b52c1e987074dad100ad234122a397b9 numpy-1.26.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
1d1bd7e0d2a89ce795a9566a38ed9bb5 numpy-1.26.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
01d2abfe8e9b35415efb791ac6c5865e numpy-1.26.2-cp39-cp39-musllinux_1_1_aarch64.whl
5a6d6ac287ebd93a221e59590329e202 numpy-1.26.2-cp39-cp39-musllinux_1_1_x86_64.whl
4e4e4d8cf661a8d2838ee700fabae87e numpy-1.26.2-cp39-cp39-win32.whl
b8e52ecac110471502686abbdf774b78 numpy-1.26.2-cp39-cp39-win_amd64.whl
aed2d2914be293f60fedda360b64abf8 numpy-1.26.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
6bd88e0f33933445d0e18c1a850f60e0 numpy-1.26.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
010aeb2a50af0af1f7ef56f76f8cf463 numpy-1.26.2-pp39-pypy39_pp73-win_amd64.whl
8f6446a32e47953a03f8fe8533e21e98 numpy-1.26.2.tar.gz
SHA256
3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f numpy-1.26.2-cp310-cp310-macosx_10_9_x86_64.whl
cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440 numpy-1.26.2-cp310-cp310-macosx_11_0_arm64.whl
36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75 numpy-1.26.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00 numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe numpy-1.26.2-cp310-cp310-musllinux_1_1_aarch64.whl
b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523 numpy-1.26.2-cp310-cp310-musllinux_1_1_x86_64.whl
22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9 numpy-1.26.2-cp310-cp310-win32.whl
26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919 numpy-1.26.2-cp310-cp310-win_amd64.whl
b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841 numpy-1.26.2-cp311-cp311-macosx_10_9_x86_64.whl
aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1 numpy-1.26.2-cp311-cp311-macosx_11_0_arm64.whl
06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a numpy-1.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b numpy-1.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7 numpy-1.26.2-cp311-cp311-musllinux_1_1_aarch64.whl
f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8 numpy-1.26.2-cp311-cp311-musllinux_1_1_x86_64.whl
a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186 numpy-1.26.2-cp311-cp311-win32.whl
2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d numpy-1.26.2-cp311-cp311-win_amd64.whl
a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0 numpy-1.26.2-cp312-cp312-macosx_10_9_x86_64.whl
5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75 numpy-1.26.2-cp312-cp312-macosx_11_0_arm64.whl
6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7 numpy-1.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6 numpy-1.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6 numpy-1.26.2-cp312-cp312-musllinux_1_1_aarch64.whl
f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec numpy-1.26.2-cp312-cp312-musllinux_1_1_x86_64.whl
4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167 numpy-1.26.2-cp312-cp312-win32.whl
b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e numpy-1.26.2-cp312-cp312-win_amd64.whl
4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef numpy-1.26.2-cp39-cp39-macosx_10_9_x86_64.whl
1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2 numpy-1.26.2-cp39-cp39-macosx_11_0_arm64.whl
64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3 numpy-1.26.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818 numpy-1.26.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210 numpy-1.26.2-cp39-cp39-musllinux_1_1_aarch64.whl
b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36 numpy-1.26.2-cp39-cp39-musllinux_1_1_x86_64.whl
bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80 numpy-1.26.2-cp39-cp39-win32.whl
2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060 numpy-1.26.2-cp39-cp39-win_amd64.whl
1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79 numpy-1.26.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d numpy-1.26.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841 numpy-1.26.2-pp39-pypy39_pp73-win_amd64.whl
f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea numpy-1.26.2.tar.gz
v1.26.1
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 totrue
, 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 totrue
, 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
andtbb
. The default isauto
, 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. RemoveNumpyUnpickler
- #24911: MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2
- #24912: BUG: loongarch doesn't use REAL(10)
Checksums
MD5
bda38de1a047dd9fdddae16c0d9fb358 numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
196d2e39047da64ab28e177760c95461 numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
9d25010a7bf50e624d2fed742790afbd numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9b22fa3d030807f0708007d9c0659f65 numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
eea626b8b930acb4b32302a9e95714f5 numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
3c40ef068f50d2ac2913c5b9fa1233fa numpy-1.26.1-cp310-cp310-win32.whl
315c251d2f284af25761a37ce6dd4d10 numpy-1.26.1-cp310-cp310-win_amd64.whl
ebdd5046937df50e9f54a6d38c5775dd numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
682f9beebe8547f205d6cdc8ff96a984 numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
e86da9b6040ea88b3835c4d8f8578658 numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
ebcb6cf7f64454215e29d8a89829c8e1 numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a8c89e13dc9a63712104e2fb06fb63a6 numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
339795930404988dbc664ff4cc72b399 numpy-1.26.1-cp311-cp311-win32.whl
4ef5e1bdd7726c19615843f5ac72e618 numpy-1.26.1-cp311-cp311-win_amd64.whl
3aad6bc72db50e9cc88aa5813e8f35bd numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
fd62f65ae7798dbda9a3f7af7aa5c8db numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
104d939e080f1baf0a56aed1de0e79e3 numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
c44b56c96097f910bbec1420abcf3db5 numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1dce230368ae5fc47dd0fe8de8ff771d numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
d93338e7d60e1d294ca326450e99806b numpy-1.26.1-cp312-cp312-win32.whl
a1832f46521335c1ee4c56dbf12e600b numpy-1.26.1-cp312-cp312-win_amd64.whl
946fbb0b6caca9258985495532d3f9ab numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
78c2ab13d395d67d90bcd6583a6f61a8 numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
0a9d80d8b646abf4ffe51fff3e075d10 numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
0229ba8145d4f58500873b540a55d60e numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9179fc57c03260374c86e18867c24463 numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
246a3103fdbe5d891d7a8aee28875a26 numpy-1.26.1-cp39-cp39-win32.whl
4589dcb7f754fade6ea3946416bee638 numpy-1.26.1-cp39-cp39-win_amd64.whl
3af340d5487a6c045f00fe5eb889957c numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
28aece4f1ceb92ec463aa353d4a91c8b numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bbd0461a1e31017b05509e9971b3478e numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
2d770f4c281d405b690c4bcb3dbe99e2 numpy-1.26.1.tar.gz
SHA256
82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575 numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244 numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67 numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2 numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297 numpy-1.26.1-cp310-cp310-win32.whl
d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab numpy-1.26.1-cp310-cp310-win_amd64.whl
cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9 numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3 numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974 numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b numpy-1.26.1-cp311-cp311-win32.whl
3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53 numpy-1.26.1-cp311-cp311-win_amd64.whl
1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24 numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124 numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66 numpy-1.26.1-cp312-cp312-win32.whl
9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7 numpy-1.26.1-cp312-cp312-win_amd64.whl
bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617 numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908 numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5 numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104 numpy-1.26.1-cp39-cp39-win32.whl
59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2 numpy-1.26.1-cp39-cp39-win_amd64.whl
06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668 numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42 numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe numpy-1.26.1.tar.gz
v1.26.0
NumPy 1.26.0 Release Notes
The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle with the addition of Python 3.12.0 support. Python 3.12 dropped distutils, consequently supporting it required finding a replacement for the setup.py/distutils based build system NumPy was using. We have chosen to use the Meson build system instead, and this is the first NumPy release supporting it. This is also the first release that supports Cython 3.0 in addition to retaining 0.29.X compatibility. Supporting those two upgrades was a large project, over 100 files have been touched in this release. The changelog doesn't capture the full extent of the work, special thanks to Ralf Gommers, Sayed Adel, Stéfan van der Walt, and Matti Picus who did much of the work in the main development branch.
The highlights of this release are:
- Python 3.12.0 support.
- Cython 3.0.0 compatibility.
- Use of the Meson build system
- Updated SIMD support
- f2py fixes, meson and bind(x) support
- Support for the updated Accelerate BLAS/LAPACK library
The Python versions supported in this release are 3.9-3.12.
New Features
numpy.array_api
Array API v2022.12 support in numpy.array_api
now full supports the
v2022.12 version of the array API standard. Note that this does not
yet include the optional fft
extension in the standard.
(gh-23789)
Support for the updated Accelerate BLAS/LAPACK library
Support for the updated Accelerate BLAS/LAPACK library, including ILP64 (64-bit integer) support, in macOS 13.3 has been added. This brings arm64 support, and significant performance improvements of up to 10x for commonly used linear algebra operations. When Accelerate is selected at build time, the 13.3+ version will automatically be used if available.
(gh-24053)
meson
backend for f2py
f2py
in compile mode (i.e. f2py -c
) now accepts the
--backend meson
option. This is the default option for Python 3.12
on-wards. Older versions will still default to --backend distutils
.
To support this in realistic use-cases, in compile mode f2py
takes a
--dep
flag one or many times which maps to dependency()
calls in the
meson
backend, and does nothing in the distutils
backend.
There are no changes for users of f2py
only as a code generator, i.e.
without -c
.
(gh-24532)
bind(c)
support for f2py
Both functions and subroutines can be annotated with bind(c)
. f2py
will handle both the correct type mapping, and preserve the unique label
for other C
interfaces.
Note: bind(c, name = 'routine_name_other_than_fortran_routine')
is
not honored by the f2py
bindings by design, since bind(c)
with the
name
is meant to guarantee only the same name in C
and Fortran
,
not in Python
and Fortran
.
(gh-24555)
Improvements
iso_c_binding
support for f2py
Previously, users would have to define their own custom f2cmap
file to
use type mappings defined by the Fortran2003 iso_c_binding
intrinsic
module. These type maps are now natively supported by f2py
(gh-24555)
Build system changes
In this release, NumPy has switched to Meson as the build system and
meson-python as the build backend. Installing NumPy or building a wheel
can be done with standard tools like pip
and pypa/build
. The
following are supported:
- Regular installs:
pip install numpy
or (in a cloned repo)pip install .
- Building a wheel:
python -m build
(preferred), orpip wheel .
- Editable installs:
pip install -e . --no-build-isolation
- Development builds through the custom CLI implemented with
spin:
spin build
.
All the regular pip
and pypa/build
flags (e.g.,
--no-build-isolation
) should work as expected.
NumPy-specific build customization
Many of the NumPy-specific ways of customizing builds have changed. The
NPY_*
environment variables which control BLAS/LAPACK, SIMD,
threading, and other such options are no longer supported, nor is a
site.cfg
file to select BLAS and LAPACK. Instead, there are
command-line flags that can be passed to the build via pip
/build
's
config-settings interface. These flags are all listed in the
meson_options.txt
file in the root of the repo. Detailed documented
will be available before the final 1.26.0 release; for now please see
the SciPy "building from source" docs
since most build customization works in an almost identical way in SciPy as it
does in NumPy.
Build dependencies
While the runtime dependencies of NumPy have not changed, the build
dependencies have. Because we temporarily vendor Meson and meson-python,
there are several new dependencies - please see the [build-system]
section of pyproject.toml
for details.
Troubleshooting
This build system change is quite large. In case of unexpected issues,
it is still possible to use a setup.py
-based build as a temporary
workaround (on Python 3.9-3.11, not 3.12), by copying
pyproject.toml.setuppy
to pyproject.toml
. However, please open an
issue with details on the NumPy issue tracker. We aim to phase out
setup.py
builds as soon as possible, and therefore would like to see
all potential blockers surfaced early on in the 1.26.0 release cycle.
Contributors
A total of 20 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- @DWesl
- Albert Steppi +
- Bas van Beek
- Charles Harris
- Developer-Ecosystem-Engineering
- Filipe Laíns +
- Jake Vanderplas
- Liang Yan +
- Marten van Kerkwijk
- Matti Picus
- Melissa Weber Mendonça
- Namami Shanker
- Nathan Goldbaum
- Ralf Gommers
- Rohit Goswami
- Sayed Adel
- Sebastian Berg
- Stefan van der Walt
- Tyler Reddy
- Warren Weckesser
Pull requests merged
A total of 59 pull requests were merged for this release.
- #24305: MAINT: Prepare 1.26.x branch for development
- #24308: MAINT: Massive update of files from main for numpy 1.26
- #24322: CI: fix wheel builds on the 1.26.x branch
- #24326: BLD: update openblas to newer version
-
#24327: TYP: Trim down the
_NestedSequence.__getitem__
signature - #24328: BUG: fix choose refcount leak
- #24337: TST: fix running the test suite in builds without BLAS/LAPACK
- #24338: BUG: random: Fix generation of nan by dirichlet.
- #24340: MAINT: Dependabot updates from main
- #24342: MAINT: Add back NPY_RUN_MYPY_IN_TESTSUITE=1
-
#24353: MAINT: Update
extbuild.py
from main. - #24356: TST: fix distutils tests for deprecations in recent setuptools...
- #24375: MAINT: Update cibuildwheel to version 2.15.0
- #24381: MAINT: Fix codespaces setup.sh script
- #24403: ENH: Vendor meson for multi-target build support
- #24404: BLD: vendor meson-python to make the Windows builds with SIMD...
- #24405: BLD, SIMD: The meson CPU dispatcher implementation
- #24406: MAINT: Remove versioneer
- #24409: REL: Prepare for the NumPy 1.26.0b1 release.
- #24453: MAINT: Pin upper version of sphinx.
- #24455: ENH: Add prefix to _ALIGN Macro
- #24456: BUG: cleanup warnings
- #24460: MAINT: Upgrade to spin 0.5
-
#24495: BUG:
asv dev
has been removed, useasv run
. - #24496: BUG: Fix meson build failure due to unchanged inplace auto-generated...
- #24521: BUG: fix issue with git-version script, needs a shebang to run
- #24522: BUG: Use a default assignment for git_hash
- #24524: BUG: fix NPY_cast_info error handling in choose
- #24526: BUG: Fix common block handling in f2py
- #24541: CI,TYP: Bump mypy to 1.4.1
- #24542: BUG: Fix assumed length f2py regression
- #24544: MAINT: Harmonize fortranobject
- #24545: TYP: add kind argument to numpy.isin type specification
- #24561: BUG: fix comparisons between masked and unmasked structured arrays
- #24590: CI: Exclude import libraries from list of DLLs on Cygwin.
-
#24591: BLD: fix
_umath_linalg
dependencies - #24594: MAINT: Stop testing on ppc64le.
- #24602: BLD: meson-cpu: fix SIMD support on platforms with no features
-
#24606: BUG: Change Cython
binding
directive to "False". - #24613: ENH: Adopt new macOS Accelerate BLAS/LAPACK Interfaces, including...
- #24614: DOC: Update building docs to use Meson
-
#24615: TYP: Add the missing
casting
keyword tonp.clip
- #24616: TST: convert cython test from setup.py to meson
-
#24617: MAINT: Fixup
fromnumeric.pyi
-
#24622: BUG, ENH: Fix
iso_c_binding
type maps and fixbind(c)
... -
#24629: TYP: Allow
binary_repr
to accept any object implementing... -
#24630: TYP: Explicitly declare
dtype
andgeneric
hashable -
#24637: ENH: Refactor the typing "reveal" tests using
typing.assert_type
- #24638: MAINT: Bump actions/checkout from 3.6.0 to 4.0.0
-
#24647: ENH:
meson
backend forf2py
- #24648: MAINT: Refactor partial load Workaround for Clang
- #24653: REL: Prepare for the NumPy 1.26.0rc1 release.
- #24659: BLD: allow specifying the long double format to avoid the runtime...
- #24665: BLD: fix bug in random.mtrand extension, don't link libnpyrandom
- #24675: BLD: build wheels for 32-bit Python on Windows, using MSVC
- #24700: BLD: fix issue with compiler selection during cross compilation
- #24701: BUG: Fix data stmt handling for complex values in f2py
- #24707: TYP: Add annotations for the py3.12 buffer protocol
-
#24718: DOC: fix a few doc build issues on 1.26.x and update
spin docs
...
Checksums
MD5
052d84a2aaad4d5a455b64f5ff3f160b numpy-1.26.0-cp310-cp310-macosx_10_9_x86_64.whl
874567083be194080e97bea39ea7befd numpy-1.26.0-cp310-cp310-macosx_11_0_arm64.whl
1a5fa023e05e050b95549d355890fbb6 numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2af03fbadd96360b26b993975709d072 numpy-1.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
32717dd51a915e9aee4dcca72acb00d0 numpy-1.26.0-cp310-cp310-musllinux_1_1_x86_64.whl
3f101e51b3b5f8c3f01256da645a1962 numpy-1.26.0-cp310-cp310-win32.whl
d523a40f0a5f5ba94f09679adbabf825 numpy-1.26.0-cp310-cp310-win_amd64.whl
6115698fdf5fb8cf895540a57d12bfb9 numpy-1.26.0-cp311-cp311-macosx_10_9_x86_64.whl
207603ee822d8af4542f239b8c0a7a67 numpy-1.26.0-cp311-cp311-macosx_11_0_arm64.whl
0cc5f95c4aebab0ca4f9f66463981016 numpy-1.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a4654b46bc10738825f37a1797e1eba5 numpy-1.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3b037dc746499f2a19bb58b55fdd0bfb numpy-1.26.0-cp311-cp311-musllinux_1_1_x86_64.whl
7bfb0c44e95f765e7fc5a7a86968a56c numpy-1.26.0-cp311-cp311-win32.whl
3355b510410cb20bacfb3c87632a731a numpy-1.26.0-cp311-cp311-win_amd64.whl
9624a97f1df9f64054409d274c1502f3 numpy-1.26.0-cp312-cp312-macosx_10_9_x86_64.whl
53429b1349542c38b2f3822c7f2904d5 numpy-1.26.0-cp312-cp312-macosx_11_0_arm64.whl
66a21bf4d8a6372cc3c4c89a67b96279 numpy-1.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
cb9abc312090046563eae619c0b68210 numpy-1.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
49e3498e0e0ec5c1f6314fb86d7f006e numpy-1.26.0-cp312-cp312-musllinux_1_1_x86_64.whl
f4a31765889478341597a7140044db85 numpy-1.26.0-cp312-cp312-win32.whl
e7d7ded11f89baf760e5ba69249606e4 numpy-1.26.0-cp312-cp312-win_amd64.whl
19698f330ae322c4813eed6e790a04d5 numpy-1.26.0-cp39-cp39-macosx_10_9_x86_64.whl
a3628f551d851fbcde6551adb8fcfe2b numpy-1.26.0-cp39-cp39-macosx_11_0_arm64.whl
b34af2ddf43b28207ec7e2c837cbe35f numpy-1.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
3d888129c86357ccfb779d9f0c1256f5 numpy-1.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e49d00c779df59a786d9f41e0d73c520 numpy-1.26.0-cp39-cp39-musllinux_1_1_x86_64.whl
69f6aa8a0f3919797cb28fab7069a578 numpy-1.26.0-cp39-cp39-win32.whl
8233224840dcdda49b08da1d5e91a730 numpy-1.26.0-cp39-cp39-win_amd64.whl
c11b4d1181b825407b71a1ac8ec04a10 numpy-1.26.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
1515773d4f569d44c6a757cb5a636cb2 numpy-1.26.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
60dc766d863d8ab561b494a7a759d562 numpy-1.26.0-pp39-pypy39_pp73-win_amd64.whl
69bd28f07afbeed2bb6ecd467afcd469 numpy-1.26.0.tar.gz
SHA256
f8db2f125746e44dce707dd44d4f4efeea8d7e2b43aace3f8d1f235cfa2733dd numpy-1.26.0-cp310-cp310-macosx_10_9_x86_64.whl
0621f7daf973d34d18b4e4bafb210bbaf1ef5e0100b5fa750bd9cde84c7ac292 numpy-1.26.0-cp310-cp310-macosx_11_0_arm64.whl
51be5f8c349fdd1a5568e72713a21f518e7d6707bcf8503b528b88d33b57dc68 numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
767254ad364991ccfc4d81b8152912e53e103ec192d1bb4ea6b1f5a7117040be numpy-1.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
436c8e9a4bdeeee84e3e59614d38c3dbd3235838a877af8c211cfcac8a80b8d3 numpy-1.26.0-cp310-cp310-musllinux_1_1_x86_64.whl
c2e698cb0c6dda9372ea98a0344245ee65bdc1c9dd939cceed6bb91256837896 numpy-1.26.0-cp310-cp310-win32.whl
09aaee96c2cbdea95de76ecb8a586cb687d281c881f5f17bfc0fb7f5890f6b91 numpy-1.26.0-cp310-cp310-win_amd64.whl
637c58b468a69869258b8ae26f4a4c6ff8abffd4a8334c830ffb63e0feefe99a numpy-1.26.0-cp311-cp311-macosx_10_9_x86_64.whl
306545e234503a24fe9ae95ebf84d25cba1fdc27db971aa2d9f1ab6bba19a9dd numpy-1.26.0-cp311-cp311-macosx_11_0_arm64.whl
8c6adc33561bd1d46f81131d5352348350fc23df4d742bb246cdfca606ea1208 numpy-1.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e062aa24638bb5018b7841977c360d2f5917268d125c833a686b7cbabbec496c numpy-1.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
546b7dd7e22f3c6861463bebb000646fa730e55df5ee4a0224408b5694cc6148 numpy-1.26.0-cp311-cp311-musllinux_1_1_x86_64.whl
c0b45c8b65b79337dee5134d038346d30e109e9e2e9d43464a2970e5c0e93229 numpy-1.26.0-cp311-cp311-win32.whl
eae430ecf5794cb7ae7fa3808740b015aa80747e5266153128ef055975a72b99 numpy-1.26.0-cp311-cp311-win_amd64.whl
166b36197e9debc4e384e9c652ba60c0bacc216d0fc89e78f973a9760b503388 numpy-1.26.0-cp312-cp312-macosx_10_9_x86_64.whl
f042f66d0b4ae6d48e70e28d487376204d3cbf43b84c03bac57e28dac6151581 numpy-1.26.0-cp312-cp312-macosx_11_0_arm64.whl
e5e18e5b14a7560d8acf1c596688f4dfd19b4f2945b245a71e5af4ddb7422feb numpy-1.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
7f6bad22a791226d0a5c7c27a80a20e11cfe09ad5ef9084d4d3fc4a299cca505 numpy-1.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4acc65dd65da28060e206c8f27a573455ed724e6179941edb19f97e58161bb69 numpy-1.26.0-cp312-cp312-musllinux_1_1_x86_64.whl
bb0d9a1aaf5f1cb7967320e80690a1d7ff69f1d47ebc5a9bea013e3a21faec95 numpy-1.26.0-cp312-cp312-win32.whl
ee84ca3c58fe48b8ddafdeb1db87388dce2c3c3f701bf447b05e4cfcc3679112 numpy-1.26.0-cp312-cp312-win_amd64.whl
4a873a8180479bc829313e8d9798d5234dfacfc2e8a7ac188418189bb8eafbd2 numpy-1.26.0-cp39-cp39-macosx_10_9_x86_64.whl
914b28d3215e0c721dc75db3ad6d62f51f630cb0c277e6b3bcb39519bed10bd8 numpy-1.26.0-cp39-cp39-macosx_11_0_arm64.whl
c78a22e95182fb2e7874712433eaa610478a3caf86f28c621708d35fa4fd6e7f numpy-1.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
86f737708b366c36b76e953c46ba5827d8c27b7a8c9d0f471810728e5a2fe57c numpy-1.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b44e6a09afc12952a7d2a58ca0a2429ee0d49a4f89d83a0a11052da696440e49 numpy-1.26.0-cp39-cp39-musllinux_1_1_x86_64.whl
5671338034b820c8d58c81ad1dafc0ed5a00771a82fccc71d6438df00302094b numpy-1.26.0-cp39-cp39-win32.whl
020cdbee66ed46b671429c7265cf00d8ac91c046901c55684954c3958525dab2 numpy-1.26.0-cp39-cp39-win_amd64.whl
0792824ce2f7ea0c82ed2e4fecc29bb86bee0567a080dacaf2e0a01fe7654369 numpy-1.26.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
7d484292eaeb3e84a51432a94f53578689ffdea3f90e10c8b203a99be5af57d8 numpy-1.26.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
186ba67fad3c60dbe8a3abff3b67a91351100f2661c8e2a80364ae6279720299 numpy-1.26.0-pp39-pypy39_pp73-win_amd64.whl
f93fc78fe8bf15afe2b8d6b6499f1c73953169fad1e9a8dd086cdff3190e7fdf numpy-1.26.0.tar.gz
v1.25.2
NumPy 1.25.2 Release Notes
NumPy 1.25.2 is a maintenance release that fixes bugs and regressions discovered after the 1.25.1 release. This is the last planned release in the 1.25.x series, the next release will be 1.26.0, which will use the meson build system and support Python 3.12. The Python versions supported by this release are 3.9-3.11.
Contributors
A total of 13 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- Aaron Meurer
- Andrew Nelson
- Charles Harris
- Kevin Sheppard
- Matti Picus
- Nathan Goldbaum
- Peter Hawkins
- Ralf Gommers
- Randy Eckenrode +
- Sam James +
- Sebastian Berg
- Tyler Reddy
- dependabot[bot]
Pull requests merged
A total of 19 pull requests were merged for this release.
- #24148: MAINT: prepare 1.25.x for further development
- #24174: ENH: Improve clang-cl compliance
- #24179: MAINT: Upgrade various build dependencies.
-
#24182: BLD: use
-ftrapping-math
with Clang on macOS - #24183: BUG: properly handle negative indexes in ufunc_at fast path
- #24184: BUG: PyObject_IsTrue and PyObject_Not error handling in setflags
- #24185: BUG: histogram small range robust
- #24186: MAINT: Update meson.build files from main branch
-
#24234: MAINT: exclude min, max and round from
np.__all__
- #24241: MAINT: Dependabot updates
- #24242: BUG: Fix the signature for np.array_api.take
- #24243: BLD: update OpenBLAS to an intermeidate commit
- #24244: BUG: Fix reference count leak in str(scalar).
- #24245: BUG: fix invalid function pointer conversion error
-
#24255: BUG: Factor out slow
getenv
call used for memory policy warning - #24292: CI: correct URL in cirrus.star
- #24293: BUG: Fix C types in scalartypes
- #24294: BUG: do not modify the input to ufunc_at
- #24295: BUG: Further fixes to indexing loop and added tests
Checksums
MD5
33518ccb4da8ee11f1dee4b9fef1e468 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl
b5cb0c3b33ef6d93ec2888f25b065636 numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl
ae027dd38bd73f09c07220b2f516f148 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
88cf69dc3c0d293492c4c7e75dccf3d8 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3e4e3ad02375ba71ae2cd05ccd97aba4 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl
f52bb644682deb26c35ddec77198b65c numpy-1.25.2-cp310-cp310-win32.whl
4944cf36652be7560a6bcd0d5d56e8ea numpy-1.25.2-cp310-cp310-win_amd64.whl
5a56e639defebb7b871c8c5613960ca3 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl
3988b96944e7218e629255214f2598bd numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl
302d65015ddd908a862fb3761a2a0363 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e54a2e23272d1c5e5b278bd7e304c948 numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
961d390e8ccaf11b1b0d6200d2c8b1c0 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl
e113865b90f97079d344100c41226fbe numpy-1.25.2-cp311-cp311-win32.whl
834a147aa1adaec97655018b882232bd numpy-1.25.2-cp311-cp311-win_amd64.whl
fb55f93a8033bde854c8a2b994045686 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl
d96e754217d29bf045e082b695667e62 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl
beab540edebecbb257e482dd9e498b44 numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e0d608c9e09cd8feba48567586cfefc0 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fe1fc32c8bb005ca04b8f10ebdcff6dd numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl
41df58a9935c8ed869c92307c95f02eb numpy-1.25.2-cp39-cp39-win32.whl
a4371272c64493beb8b04ac46c4c1521 numpy-1.25.2-cp39-cp39-win_amd64.whl
bbe051cbd5f8661dd054277f0b0f0c3d numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
3f68e6b4af6922989dc0133e37db34ee numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fc89421b79e8800240999d3a1d06a4d2 numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl
cee1996a80032d47bdf1d9d17249c34e numpy-1.25.2.tar.gz
SHA256
db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl
90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl
dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl
7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044 numpy-1.25.2-cp310-cp310-win32.whl
834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545 numpy-1.25.2-cp310-cp310-win_amd64.whl
c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl
c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl
0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl
5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d numpy-1.25.2-cp311-cp311-win32.whl
5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4 numpy-1.25.2-cp311-cp311-win_amd64.whl
b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl
eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl
3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl
2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01 numpy-1.25.2-cp39-cp39-win32.whl
76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380 numpy-1.25.2-cp39-cp39-win_amd64.whl
1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55 numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901 numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl
fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760 numpy-1.25.2.tar.gz
v1.25.1
NumPy 1.25.1 Release Notes
NumPy 1.25.1 is a maintenance release that fixes bugs and regressions discovered after the 1.25.0 release. The Python versions supported by this release are 3.9-3.11.
Contributors
A total of 10 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- Andrew Nelson
- Charles Harris
- Developer-Ecosystem-Engineering
- Hood Chatham
- Nathan Goldbaum
- Rohit Goswami
- Sebastian Berg
- Tim Paine +
- dependabot[bot]
- matoro +
Pull requests merged
A total of 14 pull requests were merged for this release.
- #23968: MAINT: prepare 1.25.x for further development
- #24036: BLD: Port long double identification to C for meson
-
#24037: BUG: Fix reduction
return NULL
to begoto fail
- #24038: BUG: Avoid undefined behavior in array.astype()
-
#24039: BUG: Ensure
__array_ufunc__
works without any kwargs passed - #24117: MAINT: Pin urllib3 to avoid anaconda-client bug.
- #24118: TST: Pin pydantic<2 in Pyodide workflow
- #24119: MAINT: Bump pypa/cibuildwheel from 2.13.0 to 2.13.1
- #24120: MAINT: Bump actions/checkout from 3.5.2 to 3.5.3
- #24122: BUG: Multiply or Divides using SIMD without a full vector can...
- #24127: MAINT: testing for IS_MUSL closes #24074
- #24128: BUG: Only replace dtype temporarily if dimensions changed
- #24129: MAINT: Bump actions/setup-node from 3.6.0 to 3.7.0
- #24134: BUG: Fix private procedures in f2py modules
Checksums
MD5
d09d98643db31e892fad11b8c2b7af22 numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl
d5b8d3b0424e2af41018f35a087c4500 numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl
1007893b1a8bfd97d445a63d29d33642 numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6a62d7a6cee310b41dc872aa7f3d7e8b numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e81f6264aecfa2269c5d29d10c362cbc numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl
ab8ecd125ca86eac0b3ada67ab66dad6 numpy-1.25.1-cp310-cp310-win32.whl
5466bebeaafcc3d6e1b98858d77ff945 numpy-1.25.1-cp310-cp310-win_amd64.whl
f31b059256ae09b7b83df63f52d8371e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl
099f74d654888869704469c321af845d numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl
20d04dccd2bfca5cfd88780d1dc9a3f8 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
61dfd7c00638e83a7af59b86615ee9d2 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4eb459c3d9479c4da2fdf20e4c4085d0 numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl
5e84e797866c68ba65fa89a4bf4ba8ce numpy-1.25.1-cp311-cp311-win32.whl
87bb1633b2e8029dbfa1e59f7ab22625 numpy-1.25.1-cp311-cp311-win_amd64.whl
3fcf2eb5970d848a26abdff1b10228e7 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl
d71e1cbe18fe05944219e5a5be1796bf numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl
5b457e10834c991bca84aae7eaa49f34 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5cbb4c2f2892fafdf6f34fcb37c9e743 numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7d9d1ae23cf5420652088bfe8e048d89 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl
7e5bed491b85f0d7c718d6809f9b3ed2 numpy-1.25.1-cp39-cp39-win32.whl
838e97b751bebadf47e2196b2c88ffa2 numpy-1.25.1-cp39-cp39-win_amd64.whl
9ba95d8d6004d9659d7728fe93f67be9 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
fbccb20254a2dc85bdec549a03b8eb56 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
95e36689e6dd078caf11e7e2a2d5f5f1 numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl
768d0ebf15e2242f4c7ca7565bb5dd3e numpy-1.25.1.tar.gz
SHA256
77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl
d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl
4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588 numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19 numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl
fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503 numpy-1.25.1-cp310-cp310-win32.whl
c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57 numpy-1.25.1-cp310-cp310-win_amd64.whl
6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl
e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800 numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl
41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl
791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb numpy-1.25.1-cp311-cp311-win32.whl
c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171 numpy-1.25.1-cp311-cp311-win_amd64.whl
3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl
1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl
d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl
247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c numpy-1.25.1-cp39-cp39-win32.whl
1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631 numpy-1.25.1-cp39-cp39-win_amd64.whl
35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl
9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf numpy-1.25.1.tar.gz
v1.25.0
NumPy 1.25.0 Release Notes
The NumPy 1.25.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, and clarify the documentation. There has also been work to prepare for the future NumPy 2.0.0 release, resulting in a large number of new and expired deprecation. Highlights are:
- Support for MUSL, there are now MUSL wheels.
- Support the Fujitsu C/C++ compiler.
- Object arrays are now supported in einsum
- Support for inplace matrix multiplication (
@=
).
We will be releasing a NumPy 1.26 when Python 3.12 comes out. That is needed because distutils has been dropped by Python 3.12 and we will be switching to using meson for future builds. The next mainline release will be NumPy 2.0.0. We plan that the 2.0 series will still support downstream projects built against earlier versions of NumPy.
The Python versions supported in this release are 3.9-3.11.
Deprecations
-
np.core.MachAr
is deprecated. It is private API. In names defined innp.core
should generally be considered private.(gh-22638)
-
np.finfo(None)
is deprecated.(gh-23011)
-
np.round_
is deprecated. Usenp.round
instead.(gh-23302)
-
np.product
is deprecated. Usenp.prod
instead.(gh-23314)
-
np.cumproduct
is deprecated. Usenp.cumprod
instead.(gh-23314)
-
np.sometrue
is deprecated. Usenp.any
instead.(gh-23314)
-
np.alltrue
is deprecated. Usenp.all
instead.(gh-23314)
-
Only ndim-0 arrays are treated as scalars. NumPy used to treat all arrays of size 1 (e.g.,
np.array([3.14])
) as scalars. In the future, this will be limited to arrays of ndim 0 (e.g.,np.array(3.14)
). The following expressions will report a deprecation warning:a = np.array([3.14]) float(a) # better: a[0] to get the numpy.float or a.item() b = np.array([[3.14]]) c = numpy.random.rand(10) c[0] = b # better: c[0] = b[0, 0]
(gh-10615)
-
numpy.find_common_type
is now deprecated and its use should be replaced with eithernumpy.result_type
ornumpy.promote_types
. Most users leave the secondscalar_types
argument tofind_common_type
as[]
in which casenp.result_type
andnp.promote_types
are both faster and more robust. When not usingscalar_types
the main difference is that the replacement intentionally converts non-native byte-order to native byte order. Further,find_common_type
returnsobject
dtype rather than failing promotion. This leads to differences when the inputs are not all numeric. Importantly, this also happens for e.g. timedelta/datetime for which NumPy promotion rules are currently sometimes surprising.When the
scalar_types
argument is not[]
things are more complicated. In most cases, usingnp.result_type
and passing the Python values0
,0.0
, or0j
has the same result as usingint
,float
, orcomplex
inscalar_types
.When
scalar_types
is constructed,np.result_type
is the correct replacement and it may be passed scalar values likenp.float32(0.0)
. Passing values other than 0, may lead to value-inspecting behavior (whichnp.find_common_type
never used and NEP 50 may change in the future). The main possible change in behavior in this case, is when the array types are signed integers and scalar types are unsigned.If you are unsure about how to replace a use of
scalar_types
or when non-numeric dtypes are likely, please do not hesitate to open a NumPy issue to ask for help.(gh-22539)
Expired deprecations
-
np.core.machar
andnp.finfo.machar
have been removed.(gh-22638)
-
+arr
will now raise an error when the dtype is not numeric (and positive is undefined).(gh-22998)
-
A sequence must now be passed into the stacking family of functions (
stack
,vstack
,hstack
,dstack
andcolumn_stack
).(gh-23019)
-
np.clip
now defaults to same-kind casting. Falling back to unsafe casting was deprecated in NumPy 1.17.(gh-23403)
-
np.clip
will now propagatenp.nan
values passed asmin
ormax
. Previously, a scalar NaN was usually ignored. This was deprecated in NumPy 1.17.(gh-23403)
-
The
np.dual
submodule has been removed.(gh-23480)
-
NumPy now always ignores sequence behavior for an array-like (defining one of the array protocols). (Deprecation started NumPy 1.20)
(gh-23660)
-
The niche
FutureWarning
when casting to a subarray dtype inastype
or the array creation functions such asasarray
is now finalized. The behavior is now always the same as if the subarray dtype was wrapped into a single field (which was the workaround, previously). (FutureWarning since NumPy 1.20)(gh-23666)
-
==
and!=
warnings have been finalized. The==
and!=
operators on arrays now always:-
raise errors that occur during comparisons such as when the arrays have incompatible shapes (
np.array([1, 2]) == np.array([1, 2, 3])
). -
return an array of all
True
or allFalse
when values are fundamentally not comparable (e.g. have different dtypes). An example isnp.array(["a"]) == np.array([1])
.This mimics the Python behavior of returning
False
andTrue
when comparing incompatible types like"a" == 1
and"a" != 1
. For a long time these gaveDeprecationWarning
orFutureWarning
.
(gh-22707)
-
-
Nose support has been removed. NumPy switched to using pytest in 2018 and nose has been unmaintained for many years. We have kept NumPy's nose support to avoid breaking downstream projects who might have been using it and not yet switched to pytest or some other testing framework. With the arrival of Python 3.12, unpatched nose will raise an error. It is time to move on.
Decorators removed:
- raises
- slow
- setastest
- skipif
- knownfailif
- deprecated
- parametrize
- _needs_refcount
These are not to be confused with pytest versions with similar names, e.g., pytest.mark.slow, pytest.mark.skipif, pytest.mark.parametrize.
Functions removed:
- Tester
- import_nose
- run_module_suite
(gh-23041)
-
The
numpy.testing.utils
shim has been removed. Importing from thenumpy.testing.utils
shim has been deprecated since 2019, the shim has now been removed. All imports should be made directly fromnumpy.testing
.(gh-23060)
-
The environment variable to disable dispatching has been removed. Support for the
NUMPY_EXPERIMENTAL_ARRAY_FUNCTION
environment variable has been removed. This variable disabled dispatching with__array_function__
.(gh-23376)
-
Support for
y=
as an alias ofout=
has been removed. Thefix
,isposinf
andisneginf
functions allowed usingy=
as a (deprecated) alias forout=
. This is no longer supported.(gh-23376)
Compatibility notes
-
The
busday_count
method now correctly handles cases where thebegindates
is later in time than theenddates
. Previously, theenddates
was included, even though the documentation states it is always excluded.(gh-23229)
-
When comparing datetimes and timedelta using
np.equal
ornp.not_equal
numpy previously allowed the comparison withcasting="unsafe"
. This operation now fails. Forcing the output dtype using thedtype
kwarg can make the operation succeed, but we do not recommend it.(gh-22707)
-
When loading data from a file handle using
np.load
, if the handle is at the end of file, as can happen when reading multiple arrays by callingnp.load
repeatedly, numpy previously raisedValueError
ifallow_pickle=False
, andOSError
ifallow_pickle=True
. Now it raisesEOFError
instead, in both cases.(gh-23105)
np.pad
with mode=wrap
pads with strict multiples of original data
Code based on earlier version of pad
that uses mode="wrap"
will
return different results when the padding size is larger than initial
array.
np.pad
with mode=wrap
now always fills the space with strict
multiples of original data even if the padding size is larger than the
initial array.
(gh-22575)
long_t
and ulong_t
removed
Cython long_t
and ulong_t
were aliases for longlong_t
and ulonglong_t
and confusing (a remainder from of Python 2). This change may lead to
the errors:
'long_t' is not a type identifier
'ulong_t' is not a type identifier
We recommend use of bit-sized types such as cnp.int64_t
or the use of
cnp.intp_t
which is 32 bits on 32 bit systems and 64 bits on 64 bit
systems (this is most compatible with indexing). If C long
is desired,
use plain long
or npy_long
. cnp.int_t
is also long
(NumPy's
default integer). However, long
is 32 bit on 64 bit windows and we may
wish to adjust this even in NumPy. (Please do not hesitate to contact
NumPy developers if you are curious about this.)
(gh-22637)
axes
argument to ufunc
Changed error message and type for bad The error message and type when a wrong axes
value is passed to
ufunc(..., axes=[...])
has changed. The message is now more
indicative of the problem, and if the value is mismatched an
AxisError
will be raised. A TypeError
will still be raised for
invalidinput types.
(gh-22675)
__array_ufunc__
can now override ufuncs if used as where
Array-likes that define If the where
keyword argument of a numpy.ufunc
{.interpreted-text
role="class"} is a subclass of numpy.ndarray
{.interpreted-text
role="class"} or is a duck type that defines
numpy.class.__array_ufunc__
{.interpreted-text role="func"} it can
override the behavior of the ufunc using the same mechanism as the input
and output arguments. Note that for this to work properly, the
where.__array_ufunc__
implementation will have to unwrap the where
argument to pass it into the default implementation of the ufunc
or,
for numpy.ndarray
{.interpreted-text role="class"} subclasses before
using super().__array_ufunc__
.
(gh-23240)
Compiling against the NumPy C API is now backwards compatible by default
NumPy now defaults to exposing a backwards compatible subset of the
C-API. This makes the use of oldest-supported-numpy
unnecessary.
Libraries can override the default minimal version to be compatible with
using:
#define NPY_TARGET_VERSION NPY_1_22_API_VERSION
before including NumPy or by passing the equivalent -D
option to the
compiler. The NumPy 1.25 default is NPY_1_19_API_VERSION
. Because the
NumPy 1.19 C API was identical to the NumPy 1.16 one resulting programs
will be compatible with NumPy 1.16 (from a C-API perspective). This
default will be increased in future non-bugfix releases. You can still
compile against an older NumPy version and run on a newer one.
For more details please see
for-downstream-package-authors
{.interpreted-text role="ref"}.
(gh-23528)
New Features
np.einsum
now accepts arrays with object
dtype
The code path will call python operators on object dtype arrays, much
like np.dot
and np.matmul
.
(gh-18053)
Add support for inplace matrix multiplication
It is now possible to perform inplace matrix multiplication via the @=
operator.
>>> import numpy as np
>>> a = np.arange(6).reshape(3, 2)
>>> print(a)
[[0 1]
[2 3]
[4 5]]
>>> b = np.ones((2, 2), dtype=int)
>>> a @​= b
>>> print(a)
[[1 1]
[5 5]
[9 9]]
(gh-21120)
NPY_ENABLE_CPU_FEATURES
environment variable
Added Users may now choose to enable only a subset of the built CPU features
at runtime by specifying the NPY_ENABLE_CPU_FEATURES
environment variable. Note that these specified features must be outside
the baseline, since those are always assumed. Errors will be raised if
attempting to enable a feature that is either not supported by your CPU,
or that NumPy was not built with.
(gh-22137)
np.exceptions
namespace
NumPy now has an NumPy now has a dedicated namespace making most exceptions and warnings available. All of these remain available in the main namespace, although some may be moved slowly in the future. The main reason for this is to increase discoverability and add future exceptions.
(gh-22644)
np.linalg
functions return NamedTuples
np.linalg
functions that return tuples now return namedtuples. These
functions are eig()
, eigh()
, qr()
, slogdet()
, and svd()
. The
return type is unchanged in instances where these functions return
non-tuples with certain keyword arguments (like
svd(compute_uv=False)
).
(gh-22786)
np.char
are compatible with NEP 42 custom dtypes
String functions in Custom dtypes that represent unicode strings or byte strings can now be
passed to the string functions in np.char
.
(gh-22863)
String dtype instances can be created from the string abstract dtype classes
It is now possible to create a string dtype instance with a size without
using the string name of the dtype. For example,
type(np.dtype('U'))(8)
will create a dtype that is equivalent to
np.dtype('U8')
. This feature is most useful when writing generic code
dealing with string dtype classes.
(gh-22963)
Fujitsu C/C++ compiler is now supported
Support for Fujitsu compiler has been added. To build with Fujitsu compiler, run:
python setup.py build -c fujitsu
SSL2 is now supported
Support for SSL2 has been added. SSL2 is a library that provides OpenBLAS compatible GEMM functions. To enable SSL2, it need to edit site.cfg and build with Fujitsu compiler. See site.cfg.example.
(gh-22982)
Improvements
NDArrayOperatorsMixin
specifies that it has no __slots__
The NDArrayOperatorsMixin
class now specifies that it contains no
__slots__
, ensuring that subclasses can now make use of this feature
in Python.
(gh-23113)
Fix power of complex zero
np.power
now returns a different result for 0^{non-zero}
for complex
numbers. Note that the value is only defined when the real part of the
exponent is larger than zero. Previously, NaN was returned unless the
imaginary part was strictly zero. The return value is either 0+0j
or
0-0j
.
(gh-18535)
DTypePromotionError
New NumPy now has a new DTypePromotionError
which is used when two dtypes
cannot be promoted to a common one, for example:
np.result_type("M8[s]", np.complex128)
raises this new exception.
(gh-22707)
np.show_config
uses information from Meson
Build and system information now contains information from Meson.
np.show_config
now has a new optional parameter mode
to
help customize the output.
(gh-22769)
np.ma.diff
not preserving the mask when called with arguments prepend/append.
Fix Calling np.ma.diff
with arguments prepend and/or append now returns a
MaskedArray
with the input mask preserved.
Previously, a MaskedArray
without the mask was returned.
(gh-22776)
Corrected error handling for NumPy C-API in Cython
Many NumPy C functions defined for use in Cython were lacking the
correct error indicator like except -1
or except *
. These have now
been added.
(gh-22997)
Ability to directly spawn random number generators
numpy.random.Generator.spawn
now allows to directly spawn new independent
child generators via the numpy.random.SeedSequence.spawn
mechanism.
numpy.random.BitGenerator.spawn
does the same for the underlying bit
generator.
Additionally, numpy.random.BitGenerator.seed_seq
now gives
direct access to the seed sequence used for initializing the bit
generator. This allows for example:
seed = 0x2e09b90939db40c400f8f22dae617151
rng = np.random.default_rng(seed)
child_rng1, child_rng2 = rng.spawn(2)
safely use rng, child_rng1, and child_rng2
Previously, this was hard to do without passing the SeedSequence
explicitly. Please see numpy.random.SeedSequence
for more
information.
(gh-23195)
numpy.logspace
now supports a non-scalar base
argument
The base
argument of numpy.logspace
can now be array-like if it is
broadcastable against the start
and stop
arguments.
(gh-23275)
np.ma.dot()
now supports for non-2d arrays
Previously np.ma.dot()
only worked if a
and b
were both 2d. Now it
works for non-2d arrays as well as np.dot()
.
(gh-23322)
Explicitly show keys of .npz file in repr
NpzFile
shows keys of loaded .npz file when printed.
>>> npzfile = np.load('arr.npz')
>>> npzfile
NpzFile 'arr.npz' with keys arr_0, arr_1, arr_2, arr_3, arr_4...
(gh-23357)
np.dtypes
NumPy now exposes DType classes in The new numpy.dtypes
module now exposes DType classes and will contain
future dtype related functionality. Most users should have no need to
use these classes directly.
(gh-23358)
Drop dtype metadata before saving in .npy or .npz files
Currently, a *.npy
file containing a table with a dtype with metadata cannot
be read back. Now, np.save
and np.savez
drop metadata before saving.
(gh-23371)
numpy.lib.recfunctions.structured_to_unstructured
returns views in more cases
structured_to_unstructured
now returns a view, if the stride between
the fields is constant. Prior, padding between the fields or a reversed
field would lead to a copy. This change only applies to ndarray
,
memmap
and recarray
. For all other array subclasses, the behavior
remains unchanged.
(gh-23652)
Signed and unsigned integers always compare correctly
When uint64
and int64
are mixed in NumPy, NumPy typically promotes
both to float64
. This behavior may be argued about but is confusing
for comparisons ==
, <=
, since the results returned can be incorrect
but the conversion is hidden since the result is a boolean. NumPy will
now return the correct results for these by avoiding the cast to float.
(gh-23713)
Performance improvements and changes
np.argsort
on AVX-512 enabled processors
Faster 32-bit and 64-bit quicksort algorithm for np.argsort gain up to 6x speed up on processors that support AVX-512 instruction set.
Thanks to Intel corporation for sponsoring this work.
(gh-23707)
np.sort
on AVX-512 enabled processors
Faster Quicksort for 16-bit and 64-bit dtypes gain up to 15x and 9x speed up on processors that support AVX-512 instruction set.
Thanks to Intel corporation for sponsoring this work.
(gh-22315)
__array_function__
machinery is now much faster
The overhead of the majority of functions in NumPy is now smaller especially when keyword arguments are used. This change significantly speeds up many simple function calls.
(gh-23020)
ufunc.at
can be much faster
Generic ufunc.at
can be up to 9x faster. The conditions for this
speedup:
- operands are aligned
- no casting
If ufuncs with appropriate indexed loops on 1d arguments with the above
conditions, ufunc.at
can be up to 60x faster (an additional 7x
speedup). Appropriate indexed loops have been added to add
,
subtract
, multiply
, floor_divide
, maximum
, minimum
, fmax
,
and fmin
.
The internal logic is similar to the logic used for regular ufuncs, which also have fast paths.
Thanks to the D. E. Shaw group for sponsoring this work.
(gh-23136)
NpzFile
Faster membership test on Membership test on NpzFile
will no longer decompress the archive if it
is successful.
(gh-23661)
Changes
np.r_[]
and np.c_[]
with certain scalar values
In rare cases, using mainly np.r_
with scalars can lead to different
results. The main potential changes are highlighted by the following:
>>> np.r_[np.arange(5, dtype=np.uint8), -1].dtype
int16 # rather than the default integer (int64 or int32)
>>> np.r_[np.arange(5, dtype=np.int8), 255]
array([ 0, 1, 2, 3, 4, 255], dtype=int16)
Where the second example returned:
array([ 0, 1, 2, 3, 4, -1], dtype=int8)
The first one is due to a signed integer scalar with an unsigned integer
array, while the second is due to 255
not fitting into int8
and
NumPy currently inspecting values to make this work. (Note that the
second example is expected to change in the future due to
NEP 50 <NEP50>
{.interpreted-text role="ref"}; it will then raise an
error.)
(gh-22539)
Most NumPy functions are wrapped into a C-callable
To speed up the __array_function__
dispatching, most NumPy functions
are now wrapped into C-callables and are not proper Python functions or
C methods. They still look and feel the same as before (like a Python
function), and this should only improve performance and user experience
(cleaner tracebacks). However, please inform the NumPy developers if
this change confuses your program for some reason.
(gh-23020)
C++ standard library usage
NumPy builds now depend on the C++ standard library, because the
numpy.core._multiarray_umath
extension is linked with the C++ linker.
(gh-23601)
Checksums
MD5
4657f046d9d9d62e4baeae9b2cc1b4ea numpy-1.25.0-cp310-cp310-macosx_10_9_x86_64.whl
f57f98fee3da2d98f752f755a880a508 numpy-1.25.0-cp310-cp310-macosx_11_0_arm64.whl
72b0ad52f96a41a7a82f511cb35c7ef1 numpy-1.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a61227341b8903fa66ab0e0fdaa15430 numpy-1.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bfccabfbd866c59545ce11ecdac60701 numpy-1.25.0-cp310-cp310-musllinux_1_1_x86_64.whl
22402904f194376b8d2de01481f04b03 numpy-1.25.0-cp310-cp310-win32.whl
e983b193f7d63568eac85d8bda8be62e numpy-1.25.0-cp310-cp310-win_amd64.whl
5f6477db172f59a4fd7f591e1007e632 numpy-1.25.0-cp311-cp311-macosx_10_9_x86_64.whl
6a85cca47af69e3d45b4efab9490af4d numpy-1.25.0-cp311-cp311-macosx_11_0_arm64.whl
ad1c0b4b406c9a2f1b42792502bc456b numpy-1.25.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
39e241f265611a9c1e89499054ead1c9 numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e36b37acf1acfbc185face67c67bfe09 numpy-1.25.0-cp311-cp311-musllinux_1_1_x86_64.whl
67862d7849b4f0f943760142f1628aed numpy-1.25.0-cp311-cp311-win32.whl
6e8ed7865792246cac2213bad404f4da numpy-1.25.0-cp311-cp311-win_amd64.whl
25e843425697364f50dd7288ff9d2ce1 numpy-1.25.0-cp39-cp39-macosx_10_9_x86_64.whl
58641e53bcb1e13dfed1f5af1aff94bc numpy-1.25.0-cp39-cp39-macosx_11_0_arm64.whl
ce15327793c39beecee8401356bc6c9b numpy-1.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
34b734a2c7698d59954c29fe7c0536f3 numpy-1.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6652d9df23c84e54466b10f4a2a290be numpy-1.25.0-cp39-cp39-musllinux_1_1_x86_64.whl
c228105e3c4c8887823d99e35eea9d2b numpy-1.25.0-cp39-cp39-win32.whl
1322210ae6a874293d13c4bb3abf24ee numpy-1.25.0-cp39-cp39-win_amd64.whl
dc36096628e65077c2a44c493606c668 numpy-1.25.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
942b4276f8d563efb111921d5995834c numpy-1.25.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0fa0734a8ff952dd643e7b9826168099 numpy-1.25.0-pp39-pypy39_pp73-win_amd64.whl
b236497153bc19b4a560ac485e4c2754 numpy-1.25.0.tar.gz
SHA256
8aa130c3042052d656751df5e81f6d61edff3e289b5994edcf77f54118a8d9f4 numpy-1.25.0-cp310-cp310-macosx_10_9_x86_64.whl
9e3f2b96e3b63c978bc29daaa3700c028fe3f049ea3031b58aa33fe2a5809d24 numpy-1.25.0-cp310-cp310-macosx_11_0_arm64.whl
d6b267f349a99d3908b56645eebf340cb58f01bd1e773b4eea1a905b3f0e4208 numpy-1.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4aedd08f15d3045a4e9c648f1e04daca2ab1044256959f1f95aafeeb3d794c16 numpy-1.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6d183b5c58513f74225c376643234c369468e02947b47942eacbb23c1671f25d numpy-1.25.0-cp310-cp310-musllinux_1_1_x86_64.whl
d76a84998c51b8b68b40448ddd02bd1081bb33abcdc28beee6cd284fe11036c6 numpy-1.25.0-cp310-cp310-win32.whl
c0dc071017bc00abb7d7201bac06fa80333c6314477b3d10b52b58fa6a6e38f6 numpy-1.25.0-cp310-cp310-win_amd64.whl
4c69fe5f05eea336b7a740e114dec995e2f927003c30702d896892403df6dbf0 numpy-1.25.0-cp311-cp311-macosx_10_9_x86_64.whl
9c7211d7920b97aeca7b3773a6783492b5b93baba39e7c36054f6e749fc7490c numpy-1.25.0-cp311-cp311-macosx_11_0_arm64.whl
ecc68f11404930e9c7ecfc937aa423e1e50158317bf67ca91736a9864eae0232 numpy-1.25.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e559c6afbca484072a98a51b6fa466aae785cfe89b69e8b856c3191bc8872a82 numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6c284907e37f5e04d2412950960894b143a648dea3f79290757eb878b91acbd1 numpy-1.25.0-cp311-cp311-musllinux_1_1_x86_64.whl
95367ccd88c07af21b379be1725b5322362bb83679d36691f124a16357390153 numpy-1.25.0-cp311-cp311-win32.whl
b76aa836a952059d70a2788a2d98cb2a533ccd46222558b6970348939e55fc24 numpy-1.25.0-cp311-cp311-win_amd64.whl
b792164e539d99d93e4e5e09ae10f8cbe5466de7d759fc155e075237e0c274e4 numpy-1.25.0-cp39-cp39-macosx_10_9_x86_64.whl
7cd981ccc0afe49b9883f14761bb57c964df71124dcd155b0cba2b591f0d64b9 numpy-1.25.0-cp39-cp39-macosx_11_0_arm64.whl
5aa48bebfb41f93043a796128854b84407d4df730d3fb6e5dc36402f5cd594c0 numpy-1.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5177310ac2e63d6603f659fadc1e7bab33dd5a8db4e0596df34214eeab0fee3b numpy-1.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0ac6edfb35d2a99aaf102b509c8e9319c499ebd4978df4971b94419a116d0790 numpy-1.25.0-cp39-cp39-musllinux_1_1_x86_64.whl
7412125b4f18aeddca2ecd7219ea2d2708f697943e6f624be41aa5f8a9852cc4 numpy-1.25.0-cp39-cp39-win32.whl
26815c6c8498dc49d81faa76d61078c4f9f0859ce7817919021b9eba72b425e3 numpy-1.25.0-cp39-cp39-win_amd64.whl
5b1b90860bf7d8a8c313b372d4f27343a54f415b20fb69dd601b7efe1029c91e numpy-1.25.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
85cdae87d8c136fd4da4dad1e48064d700f63e923d5af6c8c782ac0df8044542 numpy-1.25.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cc3fda2b36482891db1060f00f881c77f9423eead4c3579629940a3e12095fe8 numpy-1.25.0-pp39-pypy39_pp73-win_amd64.whl
f1accae9a28dc3cda46a91de86acf69de0d1b5f4edd44a9b0c3ceb8036dfff19 numpy-1.25.0.tar.gz
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.