numpy

The fundamental package for scientific computing with Python.

OTHER License

Downloads
343M
Stars
26.2K
Committers
1.8K

Bot releases are hidden (Show)

numpy -

Published by charris over 5 years ago

==========================
NumPy 1.17.0 Release Notes

This NumPy release contains a number of new features that should substantially
improve its performance and usefulness, see Highlights below for a summary. The
Python versions supported are 3.5-3.7, note that Python 2.7 has been dropped.
Python 3.8b1 should work with the released source packages, but there are no
future guarantees.

Downstream developers should use Cython >= 0.29.10 for Python 3.8 support and
OpenBLAS >= 3.7 (not currently out) to avoid problems on the Skylake
architecture. The NumPy wheels on PyPI are built from the OpenBLAS development
branch in order to avoid those problems.

Highlights

  • A new extensible random module along with four selectable random number
    generators and improved seeding designed for use in parallel processes has
    been added. The currently available bit generators are MT19937, PCG64,
    Philox, and SFC64. See below under New Features.

  • NumPy's FFT implementation was changed from fftpack to pocketfft, resulting
    in faster, more accurate transforms and better handling of datasets of
    prime length. See below under Improvements.

  • New radix sort and timsort sorting methods. It is currently not possible to
    choose which will be used, but they are hardwired to the datatype and used
    when either stable or mergesort is passed as the method. See below
    under Improvements.

  • Overriding numpy functions is now possible by default,
    see __array_function__ below.

New functions

  • numpy.errstate is now also a function decorator

Deprecations

np.polynomial functions warn when passed float in place of int

Previously functions in this module would accept float values provided they
were integral (1.0, 2.0, etc). For consistency with the rest of numpy,
doing so is now deprecated, and in future will raise a TypeError.

Similarly, passing a float like 0.5 in place of an integer will now raise a
TypeError instead of the previous ValueError.

Deprecate numpy.distutils.exec_command and numpy.distutils.temp_file_name

The internal use of these functions has been refactored and there are better
alternatives. Relace exec_command with subprocess.Popen and
temp_file_name with tempfile.mkstemp.

Writeable flag of C-API wrapped arrays

When an array is created from the C-API to wrap a pointer to data, the only
indication we have of the read-write nature of the data is the writeable
flag set during creation. It is dangerous to force the flag to writeable.
In the future it will not be possible to switch the writeable flag to True
from python. This deprecation should not affect many users since arrays created in such
a manner are very rare in practice and only available through the NumPy C-API.

numpy.nonzero should no longer be called on 0d arrays

The behavior of nonzero on 0d arrays was surprising, making uses of it almost
always incorrect. If the old behavior was intended, it can be preserved without
a warning by using nonzero(atleast_1d(arr)) instead of nonzero(arr).
In a future release, it is most likely this will raise a ValueError.

Writing to the result of numpy.broadcast_arrays will warn

Commonly numpy.broadcast_arrays returns a writeable array with internal
overlap, making it unsafe to write to. A future version will set the
writeable flag to False, and require users to manually set it to
True if they are sure that is what they want to do. Now writing to it will
emit a deprecation warning with instructions to set the writeable flag
True. Note that if one were to inspect the flag before setting it, one
would find it would already be True. Explicitly setting it, though, as one
will need to do in future versions, clears an internal flag that is used to
produce the deprecation warning. To help alleviate confusion, an additional
FutureWarning will be emitted when accessing the writeable flag state to
clarify the contradiction.

Future Changes

Shape-1 fields in dtypes won't be collapsed to scalars in a future version

Currently, a field specified as [(name, dtype, 1)] or "1type" is
interpreted as a scalar field (i.e., the same as [(name, dtype)] or
[(name, dtype, ()]). This now raises a FutureWarning; in a future version,
it will be interpreted as a shape-(1,) field, i.e. the same as
[(name,dtype, (1,))] or "(1,)type" (consistent with
[(name, dtype, n)] / "ntype" for n > 1, which is already equivalent to
[(name, dtype,(n,)] / "(n,)type").

Compatibility notes

float16 subnormal rounding

Casting from a different floating point precision to float16 used incorrect
rounding in some edge cases. This means in rare cases, subnormal results will
now be rounded up instead of down, changing the last bit (ULP) of the result.

Signed zero when using divmod

Starting in version 1.12.0, numpy incorrectly returned a negatively signed zero
when using the divmod and floor_divide functions when the result was
zero. For example:

   >>> np.zeros(10)//1
   array([-0., -0., -0., -0., -0., -0., -0., -0., -0., -0.])

With this release, the result is correctly returned as a positively signed
zero:

   >>> np.zeros(10)//1
   array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

MaskedArray.mask now returns a view of the mask, not the mask itself

Returning the mask itself was unsafe, as it could be reshaped in place which
would violate expectations of the masked array code. It's behavior is now
consistent with the .data attribute, which also returns a view.

The underlying mask can still be accessed with ._mask if it is needed.
Tests that contain assert x.mask is not y.mask or similar will need to be
updated.

Do not lookup __buffer__ attribute in numpy.frombuffer

Looking up __buffer__ attribute in numpy.frombuffer was undocumented and
non-functional. This code was removed. If needed, use
frombuffer(memoryview(obj), ...) instead.

outis buffered for memory overlaps in np.take, np.choose, np.put

If the out argument to these functions is provided and has memory overlap with
the other arguments, it is now buffered to avoid order-dependent behavior.

Unpickling while loading requires explicit opt-in

The functions np.load, and np.lib.format.read_array take an
allow_pickle keyword which now defaults to False in response to
CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>_.

Potential changes to the random stream in old random module

Due to bugs in the application of log to random floating point numbers,
the stream may change when sampling from np.random.beta, np.random.binomial,
np.random.laplace, np.random.logistic, np.random.logseries or
np.random.multinomial if a 0 is generated in the underlying MT19937 random stream.
There is a 1 in :math:10^{53} chance of this occurring, and so the probability that
the stream changes for any given seed is extremely small. If a 0 is encountered in the
underlying generator, then the incorrect value produced (either np.inf
or np.nan) is now dropped.

i0 now always returns a result with the same shape as the input

Previously, the output was squeezed, such that, e.g., input with just a single
element would lead to an array scalar being returned, and inputs with shapes
such as (10, 1) would yield results that would not broadcast against the
input.

Note that we generally recommend the SciPy implementation over the numpy one:
it is a proper ufunc written in C, and more than an order of magnitude faster.

np.can_cast no longer assumes all unsafe casting is allowed

Previously, can_cast returned True for almost all inputs for
casting='unsafe', even for cases where casting was not possible, such as
from a structured dtype to a regular one. This has been fixed, making it
more consistent with actual casting using, e.g., the .astype method.

arr.writeable can be switched to true slightly more often

In rare cases, it was not possible to switch an array from not writeable
to writeable, although a base array is writeable. This can happen if an
intermediate arr.base object is writeable. Previously, only the deepest
base object was considered for this decision. However, in rare cases this
object does not have the necessary information. In that case switching to
writeable was never allowed. This has now been fixed.

C API changes

dimension or stride input arguments are now passed by npy_intp const*

Previously these function arguments were declared as the more strict
npy_intp*, which prevented the caller passing constant data.
This change is backwards compatible, but now allows code like::

    npy_intp const fixed_dims[] = {1, 2, 3};
    // no longer complains that the const-qualifier is discarded
    npy_intp size = PyArray_MultiplyList(fixed_dims, 3);

New Features

New extensible random module with selectable random number generators

A new extensible random module along with four selectable random number
generators and improved seeding designed for use in parallel processes has been
added. The currently available bit generators are MT19937, PCG64, Philox, and
SFC64. PCG64 is the new default while MT19937 is retained for backwards
compatibility. Note that the legacy random module is unchanged and is now
frozen, your current results will not change. Extensive documentation for the
new module is available online at
NumPy devdocs.

libFLAME

Support for building NumPy with the libFLAME linear algebra package as the LAPACK,
implementation, see
libFLAME for details.

User-defined BLAS detection order

numpy.distutils now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for BLAS libraries.
By default NPY_BLAS_ORDER=mkl,blis,openblas,atlas,accelerate,blas.
However, to force the use of OpenBLAS simply do::

NPY_BLAS_ORDER=openblas python setup.py build

which forces the use of OpenBLAS.
This may be helpful for users which have a MKL installation but wishes to try
out different implementations.

User-defined LAPACK detection order

numpy.distutils now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for LAPACK libraries.
By default NPY_BLAS_ORDER=mkl,openblas,flame,atlas,accelerate,lapack.
However, to force the use of OpenBLAS simply do::

NPY_LAPACK_ORDER=openblas python setup.py build

which forces the use of OpenBLAS.
This may be helpful for users which have a MKL installation but wishes to try
out different implementations.

np.ufunc.reduce and related functions now accept a where mask

np.ufunc.reduce, np.sum, np.prod, np.min, np.max all
now accept a where keyword argument, which can be used to tell which
elements to include in the reduction. For reductions that do not have an
identity, it is necessary to also pass in an initial value (e.g.,
initial=np.inf for np.min). For instance, the equivalent of
nansum would be, np.sum(a, where=~np.isnan(a)).

Timsort and radix sort have replaced mergesort for stable sorting

Both radix sort and timsort have been implemented and are now used in place of
mergesort. Due to the need to maintain backward compatibility, the sorting
kind options "stable" and "mergesort" have been made aliases of
each other with the actual sort implementation depending on the array type.
Radix sort is used for small integer types of 16 bits or less and timsort for
the remaining types. Timsort features improved performace on data containing
already or nearly sorted data and performs like mergesort on random data and
requires O(n/2) working space. Details of the timsort algorithm can be found
at CPython listsort.txt.

np.unpackbits now accepts a count parameter

count allows subsetting the number of bits that will be unpacked up-front,
rather than reshaping and subsetting later, making the packbits operation
invertible, and the unpacking less wasteful. Counts larger than the number of
available bits add zero padding. Negative counts trim bits off the end instead
of counting from the beginning. None counts implement the existing behavior of
unpacking everything.

np.linalg.svd and np.linalg.pinv can be faster on hermitian inputs

These functions now accept a hermitian argument, matching the one added
to np.linalg.matrix_rank in 1.14.0.

divmod operation is now supported for two timedelta64 operands

The divmod operator now handles two np.timedelta64 operands, with
type signature mm->qm.

np.fromfile now takes an offset argument

This function now takes an offset keyword argument for binary files,
which specifics the offset (in bytes) from the file's current position.
Defaults to 0.

New mode "empty" for np.pad

This mode pads an array to a desired shape without initializing the new
entries.

np.empty_like and related functions now accept a shape argument

np.empty_like, np.full_like, np.ones_like and np.zeros_like now
accept a shape keyword argument, which can be used to create a new array
as the prototype, overriding its shape as well. This is particularly useful
when combined with the __array_function__ protocol, allowing the creation
of new arbitrary-shape arrays from NumPy-like libraries when such an array
is used as the prototype.

Floating point scalars implement as_integer_ratio to match the builtin float

This returns a (numerator, denominator) pair, which can be used to construct a
fractions.Fraction.

Structured dtype objects can be indexed with multiple fields names

arr.dtype[['a', 'b']] now returns a dtype that is equivalent to
arr[['a', 'b']].dtype, for consistency with
arr.dtype['a'] == arr['a'].dtype.

Like the dtype of structured arrays indexed with a list of fields, this dtype
has the same itemsize as the original, but only keeps a subset of the fields.

This means that arr[['a', 'b']] and arr.view(arr.dtype[['a', 'b']]) are
equivalent.

.npy files support unicode field names

A new format version of 3.0 has been introduced, which enables structured types
with non-latin1 field names. This is used automatically when needed.

numpy.packbits and numpy.unpackbits accept an order keyword

The order keyword defaults to big, and will order the bits
accordingly. For 'big' 3 will become [0, 0, 0, 0, 0, 0, 1, 1], and
[1, 1, 0, 0, 0, 0, 0, 0] for little

Improvements

Array comparison assertions include maximum differences

Error messages from array comparison tests such as
np.testing.assert_allclose now include "max absolute difference" and
"max relative difference," in addition to the previous "mismatch" percentage.
This information makes it easier to update absolute and relative error
tolerances.

Replacement of the fftpack based FFT module by the pocketfft library

Both implementations have the same ancestor (Fortran77 FFTPACK by Paul N.
Swarztrauber), but pocketfft contains additional modifications which improve
both accuracy and performance in some circumstances. For FFT lengths containing
large prime factors, pocketfft uses Bluestein's algorithm, which maintains
O(N log N) run time complexity instead of deteriorating towards O(N*N)
for prime lengths. Also, accuracy for real valued FFTs with near prime lengths
has improved and is on par with complex valued FFTs.

Further improvements to ctypes support in numpy.ctypeslib

A new numpy.ctypeslib.as_ctypes_type function has been added, which can be
used to converts a dtype into a best-guess ctypes type. Thanks to this
new function, numpy.ctypeslib.as_ctypes now supports a much wider range of
array types, including structures, booleans, and integers of non-native
endianness.

numpy.errstate is now also a function decorator

Currently, if you have a function like::

def foo():
    pass

and you want to wrap the whole thing in errstate, you have to rewrite it
like so::

def foo():
    with np.errstate(...):
        pass

but with this change, you can do::

@np.errstate(...)
def foo():
    pass

thereby saving a level of indentation

numpy.exp and numpy.log speed up for float32 implementation

float32 implementation of numpy.exp and numpy.log now benefit from AVX2/AVX512
instruction set which are detected during runtime. numpy.exp has a max ulp
error of 2.52 and numpy.log has a max ulp error or 3.83.

Improve performance of numpy.pad

The performance of the function has been improved for most cases by filling in
a preallocated array with the desired padded shape instead of using
concatenation.

numpy.interp handles infinities more robustly

In some cases where np.interp would previously return np.nan, it now
returns an appropriate infinity.

Pathlib support for np.fromfile, ndarray.tofile and ndarray.dump

np.fromfile, np.ndarray.tofile and np.ndarray.dump now support
the pathlib.Path type for the file/fid parameter.

Specialized np.isnan, np.isinf, and np.isfinite ufuncs for bool and int types

The boolean and integer types are incapable of storing np.nan and
np.inf values, which allows us to provide specialized ufuncs that are up to
250x faster than the current approach.

np.isfinite supports datetime64 and timedelta64 types

Previously, np.isfinite used to raise a TypeError on being used on these
two types.

New keywords added to np.nan_to_num

np.nan_to_num now accepts keywords nan, posinf and neginf
allowing the user to define the value to replace the nan, positive and
negative np.inf values respectively.

MemoryErrors caused by allocated overly large arrays are more descriptive

Often the cause of a MemoryError is incorrect broadcasting, which results in a
very large and incorrect shape. The message of the error now includes this
shape to help diagnose the cause of failure.

floor, ceil, and trunc now respect builtin magic methods

These ufuncs now call the __floor__, __ceil__, and __trunc__
methods when called on object arrays, making them compatible with
decimal.Decimal and fractions.Fraction objects.

quantile now works on fraction.Fraction and decimal.Decimal objects

In general, this handles object arrays more gracefully, and avoids floating-
point operations if exact arithmetic types are used.

Support of object arrays in np.matmul

It is now possible to use np.matmul (or the @ operator) with object arrays.
For instance, it is now possible to do::

from fractions import Fraction
a = np.array([[Fraction(1, 2), Fraction(1, 3)], [Fraction(1, 3), Fraction(1, 2)]])
b = a @ a

Changes

median and percentile family of functions no longer warn about nan

numpy.median, numpy.percentile, and numpy.quantile used to emit a
RuntimeWarning when encountering an numpy.nan. Since they return the
nan value, the warning is redundant and has been removed.

timedelta64 % 0 behavior adjusted to return NaT

The modulus operation with two np.timedelta64 operands now returns
NaT in the case of division by zero, rather than returning zero

NumPy functions now always support overrides with __array_function__

NumPy now always checks the __array_function__ method to implement overrides
of NumPy functions on non-NumPy arrays, as described in NEP 18_. The feature
was available for testing with NumPy 1.16 if appropriate environment variables
are set, but is now always enabled.

.. _NEP 18 : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

numpy.lib.recfunctions.structured_to_unstructured does not squeeze single-field views

Previously structured_to_unstructured(arr[['a']]) would produce a squeezed
result inconsistent with structured_to_unstructured(arr[['a', b']]). This
was accidental. The old behavior can be retained with
structured_to_unstructured(arr[['a']]).squeeze(axis=-1) or far more simply,
arr['a'].

clip now uses a ufunc under the hood

This means that registering clip functions for custom dtypes in C via
descr->f->fastclip is deprecated - they should use the ufunc registration
mechanism instead, attaching to the np.core.umath.clip ufunc.

It also means that clip accepts where and casting arguments,
and can be override with __array_ufunc__.

A consequence of this change is that some behaviors of the old clip have
been deprecated:

  • Passing nan to mean "do not clip" as one or both bounds. This didn't work
    in all cases anyway, and can be better handled by passing infinities of the
    appropriate sign.
  • Using "unsafe" casting by default when an out argument is passed. Using
    casting="unsafe" explicitly will silence this warning.

Additionally, there are some corner cases with behavior changes:

  • Padding max < min has changed to be more consistent across dtypes, but
    should not be relied upon.
  • Scalar min and max take part in promotion rules like they do in all
    other ufuncs.

__array_interface__ offset now works as documented

The interface may use an offset value that was mistakenly ignored.

Pickle protocol in np.savez set to 3 for force zip64 flag

np.savez was not using the force_zip64 flag, which limited the size of
the archive to 2GB. But using the flag requires us to use pickle protocol 3 to
write object arrays. The protocol used was bumped to 3, meaning the archive
will be unreadable by Python2.

Structured arrays indexed with non-existent fields raise KeyError not ValueError

arr['bad_field'] on a structured type raises KeyError, for consistency
with dict['bad_field'].

.. _NEP 18 : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

Checksums

MD5

d97e622de3c0b719231a1e1bcab1ed55  numpy-1.17.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3d113d94be12997ec19f05b00dbb55ad  numpy-1.17.0rc1-cp35-cp35m-manylinux1_i686.whl
0a6599f0492b3550843d091b0202dbe9  numpy-1.17.0rc1-cp35-cp35m-manylinux1_x86_64.whl
aec8543b9be95a4f3c8d038fc977a471  numpy-1.17.0rc1-cp35-cp35m-win32.whl
673ebd7abae0b7e1eb92cc23b0cd40f2  numpy-1.17.0rc1-cp35-cp35m-win_amd64.whl
ae2bdaa0ca4999db507ce3fb1b173fd8  numpy-1.17.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
fedb3f0b411b55882d43c6b54e4e1fe8  numpy-1.17.0rc1-cp36-cp36m-manylinux1_i686.whl
e2c4c37ac91ad7aaab0af167b45c9be3  numpy-1.17.0rc1-cp36-cp36m-manylinux1_x86_64.whl
67b54fa0ade6098f80a5b1570dca8066  numpy-1.17.0rc1-cp36-cp36m-win32.whl
42ae66a117cbf3032a2973aaa49cc751  numpy-1.17.0rc1-cp36-cp36m-win_amd64.whl
40a6fba952a011c1053b1867580ffe1c  numpy-1.17.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
68b0c9781374584fd175366333ed16da  numpy-1.17.0rc1-cp37-cp37m-manylinux1_i686.whl
578d62bd252aa229580f74198f5fd305  numpy-1.17.0rc1-cp37-cp37m-manylinux1_x86_64.whl
69d1ce7fbb2f4e74ce31f07e69bfce8c  numpy-1.17.0rc1-cp37-cp37m-win32.whl
3058e6f76c7216e948648be2731daa08  numpy-1.17.0rc1-cp37-cp37m-win_amd64.whl
71a5b962f05d70c25dbe29aa76a2677b  numpy-1.17.0rc1.tar.gz
0d3c728ee377cdc8b7c66488557b3d07  numpy-1.17.0rc1.zip

SHA256

1b46bbd810519dd3f75c7654346ef8cbc85164e9fbf263e6ab886a7b5414b4be  numpy-1.17.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
487034fb9f0d0a98d200b2b304dd6ca7e14b563749c184b3e9f5fb6f0b61b8e3  numpy-1.17.0rc1-cp35-cp35m-manylinux1_i686.whl
0e574d32e251510ed8ccd1f354f4f77ae380278e294c98e5f87cde51f8775cd0  numpy-1.17.0rc1-cp35-cp35m-manylinux1_x86_64.whl
a11e133d0de38868c3b732f0bb047ce1a2b25f37c49b841acc52ca5522095dca  numpy-1.17.0rc1-cp35-cp35m-win32.whl
c8c589628445247aebe030d456d1115de072d7f6ecc3ed5f7463f05b37dd54f6  numpy-1.17.0rc1-cp35-cp35m-win_amd64.whl
2360b5e6ca1929db1d5132933340bdc15c37c75c8cb9f2f1d7ee63ccf8df25e0  numpy-1.17.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
63279153109be338363f593f1d30b61412fc1bca258d0673244a6ae2d70fe743  numpy-1.17.0rc1-cp36-cp36m-manylinux1_i686.whl
ce4f4b9dd33fcf5b0b2fb37cb4b48668f8f2ed579d55d9799216f5a46c3009bd  numpy-1.17.0rc1-cp36-cp36m-manylinux1_x86_64.whl
35c8f2d7b5748f87631f65502b547723c85064ef57c9f131333a2c4cf793efaa  numpy-1.17.0rc1-cp36-cp36m-win32.whl
7e00fb54174d797fff2b158223805dccc2026bce6daddbb3e5ea2b7d92304d24  numpy-1.17.0rc1-cp36-cp36m-win_amd64.whl
6a8be628e8269c40024bb5178de25c06950eaaea99afd9784a3980f550ff7679  numpy-1.17.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
01e0f739d2dd40bccb8667f23bc26077d72ee22ac9cb4671111c680e2a067409  numpy-1.17.0rc1-cp37-cp37m-manylinux1_i686.whl
21b1a68dffca1af1936d35d40afbeda30e290ab2d398f6af6cc79bfa23e9957b  numpy-1.17.0rc1-cp37-cp37m-manylinux1_x86_64.whl
0e415dc0509f3b44f3cbd0bc994a5862bc41a2301c2db1fe4a01259e0b3d9999  numpy-1.17.0rc1-cp37-cp37m-win32.whl
50fc29e91ffd3052c0f2faae577e6e6792df3017100d7b9683b158c44e0a21cd  numpy-1.17.0rc1-cp37-cp37m-win_amd64.whl
79f5d946e06ddb19a8570061b6121087d4309678e52da2144f36840d6c1a1627  numpy-1.17.0rc1.tar.gz
f53df05f9ca4ec5d72709ffe349704f1f7d945ed59e815574b5c5687acb282c4  numpy-1.17.0rc1.zip
numpy -

Published by charris over 5 years ago

==========================
NumPy 1.16.4 Release Notes

The NumPy 1.16.4 release fixes bugs reported against the 1.16.3 release, and
also backports several enhancements from master that seem appropriate for a
release series that is the last to support Python 2.7. The wheels on PyPI are
linked with OpenBLAS v0.3.7-dev, which should fix issues on Skylake series
cpus.

Downstream developers building this release should use Cython >= 0.29.2 and,
if using OpenBLAS, OpenBLAS > v0.3.7. The supported Python versions are 2.7 and
3.5-3.7.

New deprecations

Writeable flag of C-API wrapped arrays

When an array is created from the C-API to wrap a pointer to data, the only
indication we have of the read-write nature of the data is the writeable
flag set during creation. It is dangerous to force the flag to writeable. In
the future it will not be possible to switch the writeable flag to True
from python. This deprecation should not affect many users since arrays
created in such a manner are very rare in practice and only available through
the NumPy C-API.

Compatibility notes

Potential changes to the random stream

Due to bugs in the application of log to random floating point numbers,
the stream may change when sampling from np.random.beta, np.random.binomial,
np.random.laplace, np.random.logistic, np.random.logseries or
np.random.multinomial if a 0 is generated in the underlying MT19937 random stream.
There is a 1 in :math:10^{53} chance of this occurring, and so the probability that
the stream changes for any given seed is extremely small. If a 0 is encountered in the
underlying generator, then the incorrect value produced (either np.inf
or np.nan) is now dropped.

Changes

numpy.lib.recfunctions.structured_to_unstructured does not squeeze single-field views

Previously structured_to_unstructured(arr[['a']]) would produce a squeezed
result inconsistent with structured_to_unstructured(arr[['a', b']]). This
was accidental. The old behavior can be retained with
structured_to_unstructured(arr[['a']]).squeeze(axis=-1) or far more simply,
arr['a'].

Contributors

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

  • Charles Harris
  • Eric Wieser
  • Dennis Zollo +
  • Hunter Damron +
  • Jingbei Li +
  • Kevin Sheppard
  • Matti Picus
  • Nicola Soranzo +
  • Sebastian Berg
  • Tyler Reddy

Pull requests merged

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

  • #13392: BUG: Some PyPy versions lack PyStructSequence_InitType2.
  • #13394: MAINT, DEP: Fix deprecated assertEquals()
  • #13396: BUG: Fix structured_to_unstructured on single-field types (backport)
  • #13549: BLD: Make CI pass again with pytest 4.5
  • #13552: TST: Register markers in conftest.py.
  • #13559: BUG: Removes ValueError for empty kwargs in arraymultiter_new
  • #13560: BUG: Add TypeError to accepted exceptions in crackfortran.
  • #13561: BUG: Handle subarrays in descr_to_dtype
  • #13562: BUG: Protect generators from log(0.0)
  • #13563: BUG: Always return views from structured_to_unstructured when...
  • #13564: BUG: Catch stderr when checking compiler version
  • #13565: BUG: longdouble(int) does not work
  • #13587: BUG: distutils/system_info.py fix missing subprocess import (#13523)
  • #13620: BUG,DEP: Fix writeable flag setting for arrays without base
  • #13641: MAINT: Prepare for the 1.16.4 release.
  • #13644: BUG: special case object arrays when printing rel-, abs-error

Checksums

MD5

a24c599ae3445d9d085e77ce4d072259  numpy-1.16.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
efcfb51254d83060a2af0d30aa1d1b81  numpy-1.16.4-cp27-cp27m-manylinux1_i686.whl
b62eca40cbab3e24c4962e22633d92a5  numpy-1.16.4-cp27-cp27m-manylinux1_x86_64.whl
c96618196f6dfc29f4931a2f6fea44ad  numpy-1.16.4-cp27-cp27m-win32.whl
6dd36dfd23338844c1ecac8b92efd938  numpy-1.16.4-cp27-cp27m-win_amd64.whl
52c8e342f110b2fba426fca60b1c2774  numpy-1.16.4-cp27-cp27mu-manylinux1_i686.whl
038f16384a2af6bd3db61dc773ffbe10  numpy-1.16.4-cp27-cp27mu-manylinux1_x86_64.whl
32b18d06069d3d86b8e3193b2f455c15  numpy-1.16.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d6550e24ff69d4a175d278f39f871d39  numpy-1.16.4-cp35-cp35m-manylinux1_i686.whl
07b33ea867cf2657e23dbf93069eff99  numpy-1.16.4-cp35-cp35m-manylinux1_x86_64.whl
cc84f9555a711a2bc867d3b941992a68  numpy-1.16.4-cp35-cp35m-win32.whl
cf671f2b0e651e701472456107c8e644  numpy-1.16.4-cp35-cp35m-win_amd64.whl
1376e801040a91f8b325e827e6d53f91  numpy-1.16.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
833f763fb0d69c850fae175c65f7b502  numpy-1.16.4-cp36-cp36m-manylinux1_i686.whl
255ae62cf215e647ee437d432b6511c2  numpy-1.16.4-cp36-cp36m-manylinux1_x86_64.whl
6fcb9a8f601795413ceaf06767caca2d  numpy-1.16.4-cp36-cp36m-win32.whl
de4fa9f01692ec94932a289440f18255  numpy-1.16.4-cp36-cp36m-win_amd64.whl
dab4ec8a1c07a7a1a54932c461933992  numpy-1.16.4-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c1d3c38c67396809c51f5c98aead5e13  numpy-1.16.4-cp37-cp37m-manylinux1_i686.whl
e98fc6a8d90ff7ed26d0ed7faad3aa8d  numpy-1.16.4-cp37-cp37m-manylinux1_x86_64.whl
f84869efe5610e6ad6165237c012ea93  numpy-1.16.4-cp37-cp37m-win32.whl
17b46c338d04cb8b4773fb6b02919f2b  numpy-1.16.4-cp37-cp37m-win_amd64.whl
6edf7334d04d8e8849ad058ccd3b3803  numpy-1.16.4.tar.gz
74f7d348c55ace4d22d7ad26c65755aa  numpy-1.16.4.zip

SHA256

b5554368e4ede1856121b0dfa35ce71768102e4aa55e526cb8de7f374ff78722  numpy-1.16.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e8baab1bc7c9152715844f1faca6744f2416929de10d7639ed49555a85549f52  numpy-1.16.4-cp27-cp27m-manylinux1_i686.whl
2a04dda79606f3d2f760384c38ccd3d5b9bb79d4c8126b67aff5eb09a253763e  numpy-1.16.4-cp27-cp27m-manylinux1_x86_64.whl
94f5bd885f67bbb25c82d80184abbf7ce4f6c3c3a41fbaa4182f034bba803e69  numpy-1.16.4-cp27-cp27m-win32.whl
7dc253b542bfd4b4eb88d9dbae4ca079e7bf2e2afd819ee18891a43db66c60c7  numpy-1.16.4-cp27-cp27m-win_amd64.whl
0778076e764e146d3078b17c24c4d89e0ecd4ac5401beff8e1c87879043a0633  numpy-1.16.4-cp27-cp27mu-manylinux1_i686.whl
b0348be89275fd1d4c44ffa39530c41a21062f52299b1e3ee7d1c61f060044b8  numpy-1.16.4-cp27-cp27mu-manylinux1_x86_64.whl
52c40f1a4262c896420c6ea1c6fda62cf67070e3947e3307f5562bd783a90336  numpy-1.16.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
141c7102f20abe6cf0d54c4ced8d565b86df4d3077ba2343b61a6db996cefec7  numpy-1.16.4-cp35-cp35m-manylinux1_i686.whl
6e4f8d9e8aa79321657079b9ac03f3cf3fd067bf31c1cca4f56d49543f4356a5  numpy-1.16.4-cp35-cp35m-manylinux1_x86_64.whl
d79f18f41751725c56eceab2a886f021d70fd70a6188fd386e29a045945ffc10  numpy-1.16.4-cp35-cp35m-win32.whl
14270a1ee8917d11e7753fb54fc7ffd1934f4d529235beec0b275e2ccf00333b  numpy-1.16.4-cp35-cp35m-win_amd64.whl
a89e188daa119ffa0d03ce5123dee3f8ffd5115c896c2a9d4f0dbb3d8b95bfa3  numpy-1.16.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ec31fe12668af687b99acf1567399632a7c47b0e17cfb9ae47c098644ef36797  numpy-1.16.4-cp36-cp36m-manylinux1_i686.whl
27e11c7a8ec9d5838bc59f809bfa86efc8a4fd02e58960fa9c49d998e14332d5  numpy-1.16.4-cp36-cp36m-manylinux1_x86_64.whl
dc2ca26a19ab32dc475dbad9dfe723d3a64c835f4c23f625c2b6566ca32b9f29  numpy-1.16.4-cp36-cp36m-win32.whl
ad3399da9b0ca36e2f24de72f67ab2854a62e623274607e37e0ce5f5d5fa9166  numpy-1.16.4-cp36-cp36m-win_amd64.whl
f58ac38d5ca045a377b3b377c84df8175ab992c970a53332fa8ac2373df44ff7  numpy-1.16.4-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f12b4f7e2d8f9da3141564e6737d79016fe5336cc92de6814eba579744f65b0a  numpy-1.16.4-cp37-cp37m-manylinux1_i686.whl
cbddc56b2502d3f87fda4f98d948eb5b11f36ff3902e17cb6cc44727f2200525  numpy-1.16.4-cp37-cp37m-manylinux1_x86_64.whl
3c26010c1b51e1224a3ca6b8df807de6e95128b0908c7e34f190e7775455b0ca  numpy-1.16.4-cp37-cp37m-win32.whl
dd9bcd4f294eb0633bb33d1a74febdd2b9018b8b8ed325f861fffcd2c7660bb8  numpy-1.16.4-cp37-cp37m-win_amd64.whl
a3bccb70ad94091a5b9e2469fabd41ac877c140a6828c2022e35560a2ec0346c  numpy-1.16.4.tar.gz
7242be12a58fec245ee9734e625964b97cf7e3f2f7d016603f9e56660ce479c7  numpy-1.16.4.zip
numpy -

Published by charris over 5 years ago

==========================
NumPy 1.16.3 Release Notes

The NumPy 1.16.3 release fixes bugs reported against the 1.16.2 release, and
also backports several enhancements from master that seem appropriate for a
release series that is the last to support Python 2.7. The wheels on PyPI are
linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.

Downstream developers building this release should use Cython >= 0.29.2 and,
if using OpenBLAS, OpenBLAS > v0.3.4.

The most noticeable change in this release is that unpickling object arrays
when loading *.npy or *.npz files now requires an explicit opt-in.
This backwards incompatible change was made in response to
CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>_.

Compatibility notes

Unpickling while loading requires explicit opt-in

The functions np.load, and np.lib.format.read_array take an
allow_pickle keyword which now defaults to False in response to
CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>_.

Improvements

Covariance in random.mvnormal cast to double

This should make the tolerance used when checking the singular values of the
covariance matrix more meaningful.

Changes

__array_interface__ offset now works as documented

The interface may use an offset value that was previously mistakenly
ignored.

Checksums

MD5

7039dd60e2066e8882149a8b8bd6cf2f  numpy-1.16.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c03c7365b58deefd03e3c080660d7157  numpy-1.16.3-cp27-cp27m-manylinux1_i686.whl
91900b9172e39c039326c56cf0149e15  numpy-1.16.3-cp27-cp27m-manylinux1_x86_64.whl
b06d87509a2228c5952096cb11c8b007  numpy-1.16.3-cp27-cp27m-win32.whl
88c1e91c6bd3626278b7938f12cafbe2  numpy-1.16.3-cp27-cp27m-win_amd64.whl
98fb024d8d63f056ef7c82e772c4bfa0  numpy-1.16.3-cp27-cp27mu-manylinux1_i686.whl
d2b8da12f0855765e9cd3cc49d9885b9  numpy-1.16.3-cp27-cp27mu-manylinux1_x86_64.whl
ec4f2fd2180fd68647f38a0d4c331dcf  numpy-1.16.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7add5c07a1679bfc086d5575be26ccc6  numpy-1.16.3-cp35-cp35m-manylinux1_i686.whl
bd3c27deac470bce5edf6936d08966b8  numpy-1.16.3-cp35-cp35m-manylinux1_x86_64.whl
c6ab529b105181fc846a8245e5e4d048  numpy-1.16.3-cp35-cp35m-win32.whl
1854757b3e127614ae01b0b814762f5c  numpy-1.16.3-cp35-cp35m-win_amd64.whl
b23b0727562be62ffd943c7828822da9  numpy-1.16.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
93a2a4b48f160ffd1bdd30023b842be2  numpy-1.16.3-cp36-cp36m-manylinux1_i686.whl
453f5996ac600c4085656e82005fb0e5  numpy-1.16.3-cp36-cp36m-manylinux1_x86_64.whl
773f9e76235ab5edd9ef1c083e62ea9f  numpy-1.16.3-cp36-cp36m-win32.whl
9ba2467b05eb4471817509cabff1b9a6  numpy-1.16.3-cp36-cp36m-win_amd64.whl
00594b150e69d1776164ffa60d7fdc01  numpy-1.16.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
fe3421cbae83004e7feca4d90043e9df  numpy-1.16.3-cp37-cp37m-manylinux1_i686.whl
4e907ac7d841018c0a9130ca45d099ee  numpy-1.16.3-cp37-cp37m-manylinux1_x86_64.whl
c7e8e9f9ded13b1356e72cd8506df224  numpy-1.16.3-cp37-cp37m-win32.whl
370ec58a5fdfe9e7ffe90857577806c6  numpy-1.16.3-cp37-cp37m-win_amd64.whl
0886e5b5017f08f2b7a624c0b5931e61  numpy-1.16.3.tar.gz
cab84884fba39fbd352550896bf22bfd  numpy-1.16.3.zip

SHA256

b78a1defedb0e8f6ae1eb55fa6ac74ab42acc4569c3a2eacc2a407ee5d42ebcb  numpy-1.16.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0e2eed77804b2a6a88741f8fcac02c5499bba3953ec9c71e8b217fad4912c56c  numpy-1.16.3-cp27-cp27m-manylinux1_i686.whl
754a6be26d938e6ca91942804eb209307b73f806a1721176278a6038869a1686  numpy-1.16.3-cp27-cp27m-manylinux1_x86_64.whl
315fa1b1dfc16ae0f03f8fd1c55f23fd15368710f641d570236f3d78af55e340  numpy-1.16.3-cp27-cp27m-win32.whl
80d99399c97f646e873dd8ce87c38cfdbb668956bbc39bc1e6cac4b515bba2a0  numpy-1.16.3-cp27-cp27m-win_amd64.whl
a61255a765b3ac73ee4b110b28fccfbf758c985677f526c2b4b39c48cc4b509d  numpy-1.16.3-cp27-cp27mu-manylinux1_i686.whl
88a72c1e45a0ae24d1f249a529d9f71fe82e6fa6a3fd61414b829396ec585900  numpy-1.16.3-cp27-cp27mu-manylinux1_x86_64.whl
54fe3b7ed9e7eb928bbc4318f954d133851865f062fa4bbb02ef8940bc67b5d2  numpy-1.16.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
abbd6b1c2ef6199f4b7ca9f818eb6b31f17b73a6110aadc4e4298c3f00fab24e  numpy-1.16.3-cp35-cp35m-manylinux1_i686.whl
771147e654e8b95eea1293174a94f34e2e77d5729ad44aefb62fbf8a79747a15  numpy-1.16.3-cp35-cp35m-manylinux1_x86_64.whl
48241759b99d60aba63b0e590332c600fc4b46ad597c9b0a53f350b871ef0634  numpy-1.16.3-cp35-cp35m-win32.whl
b16d88da290334e33ea992c56492326ea3b06233a00a1855414360b77ca72f26  numpy-1.16.3-cp35-cp35m-win_amd64.whl
ab4896a8c910b9a04c0142871d8800c76c8a2e5ff44763513e1dd9d9631ce897  numpy-1.16.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7fde5c2a3a682a9e101e61d97696687ebdba47637611378b4127fe7e47fdf2bf  numpy-1.16.3-cp36-cp36m-manylinux1_i686.whl
4b4f2924b36d857cf302aec369caac61e43500c17eeef0d7baacad1084c0ee84  numpy-1.16.3-cp36-cp36m-manylinux1_x86_64.whl
d160e57731fcdec2beda807ebcabf39823c47e9409485b5a3a1db3a8c6ce763e  numpy-1.16.3-cp36-cp36m-win32.whl
1f46532afa7b2903bfb1b79becca2954c0a04389d19e03dc73f06b039048ac40  numpy-1.16.3-cp36-cp36m-win_amd64.whl
1c666f04553ef70fda54adf097dbae7080645435fc273e2397f26bbf1d127bbb  numpy-1.16.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3d5fcea4f5ed40c3280791d54da3ad2ecf896f4c87c877b113576b8280c59441  numpy-1.16.3-cp37-cp37m-manylinux1_i686.whl
5a8f021c70e6206c317974c93eaaf9bc2b56295b6b1cacccf88846e44a1f33fc  numpy-1.16.3-cp37-cp37m-manylinux1_x86_64.whl
cfef82c43b8b29ca436560d51b2251d5117818a8d1fb74a8384a83c096745dad  numpy-1.16.3-cp37-cp37m-win32.whl
a4f4460877a16ac73302a9c077ca545498d9fe64e6a81398d8e1a67e4695e3df  numpy-1.16.3-cp37-cp37m-win_amd64.whl
adf063a3f87ab89393f5eea0eb903293b112fa0a308e8c594a75ffa585d81d4f  numpy-1.16.3.tar.gz
78a6f89da87eeb48014ec652a65c4ffde370c036d780a995edaeb121d3625621  numpy-1.16.3.zip
numpy -

Published by charris over 5 years ago

==========================
NumPy 1.16.2 Release Notes

NumPy 1.16.2 is a quick release fixing several problems encountered on Windows.
The Python versions supported are 2.7 and 3.5-3.7. The Windows problems
addressed are:

  • DLL load problems for NumPy wheels on Windows,
  • distutils command line parsing on Windows.

There is also a regression fix correcting signed zeros produced by divmod, see
below for details.

Downstream developers building this release should use Cython >= 0.29.2 and, if
using OpenBLAS, OpenBLAS > v0.3.4.

If you are installing using pip, you may encounter a problem with older
installed versions of NumPy that pip did not delete becoming mixed with the
current version, resulting in an ImportError. That problem is particularly
common on Debian derived distributions due to a modified pip. The fix is to
make sure all previous NumPy versions installed by pip have been removed. See
#12736 <https://github.com/numpy/numpy/issues/12736>__ for discussion of the
issue.

Compatibility notes

Signed zero when using divmod

Starting in version 1.12.0, numpy incorrectly returned a negatively signed zero
when using the divmod and floor_divide functions when the result was
zero. For example:

   >>> np.zeros(10)//1
   array([-0., -0., -0., -0., -0., -0., -0., -0., -0., -0.])

With this release, the result is correctly returned as a positively signed
zero:

   >>> np.zeros(10)//1
   array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

Contributors

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

  • Charles Harris
  • Eric Wieser
  • Matti Picus
  • Tyler Reddy
  • Tony LaTorre +

Pull requests merged

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

  • #12909: TST: fix vmImage dispatch in Azure
  • #12923: MAINT: remove complicated test of multiarray import failure mode
  • #13020: BUG: fix signed zero behavior in npy_divmod
  • #13026: MAINT: Add functions to parse shell-strings in the platform-native...
  • #13028: BUG: Fix regression in parsing of F90 and F77 environment variables
  • #13038: BUG: parse shell escaping in extra_compile_args and extra_link_args
  • #13041: BLD: Windows absolute path DLL loading

Checksums

MD5

a166c7e850f9375552f9950ba95f3a8a  numpy-1.16.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
cfc866763a75e7cb247c189e141e4506  numpy-1.16.2-cp27-cp27m-manylinux1_i686.whl
0756e1901d81033143ad55583118598e  numpy-1.16.2-cp27-cp27m-manylinux1_x86_64.whl
1242a10df37701abe8c8afc59809e1ac  numpy-1.16.2-cp27-cp27m-win32.whl
60da6aed692fc96c97efde2daca52d6f  numpy-1.16.2-cp27-cp27m-win_amd64.whl
62b92da3423dd59230c9369a43299506  numpy-1.16.2-cp27-cp27mu-manylinux1_i686.whl
5125ec60d3895d89e5d6d71d9e21b349  numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl
15bbe3a9ac6024ac631ed420c04fde47  numpy-1.16.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ca025ce06f5bc7b81627bc5bf523d589  numpy-1.16.2-cp35-cp35m-manylinux1_i686.whl
ca9953287417064b44a47a6ec92c797c  numpy-1.16.2-cp35-cp35m-manylinux1_x86_64.whl
f8fa8bda14131b2714c42b775dfde349  numpy-1.16.2-cp35-cp35m-win32.whl
ce7abc3bb59c549ffe3b56984a291eaa  numpy-1.16.2-cp35-cp35m-win_amd64.whl
4f26f55f35c58b4228cb3f60cb98f32d  numpy-1.16.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ac1e770a95ff3f8a47f74e64bd034768  numpy-1.16.2-cp36-cp36m-manylinux1_i686.whl
990a95c5f6bb34ed5588c996890bf9c7  numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl
79bbaffa096bbbaf42c029bf85df5ac2  numpy-1.16.2-cp36-cp36m-win32.whl
83ddd33ccf7a434895ade64199424a07  numpy-1.16.2-cp36-cp36m-win_amd64.whl
ee8c8d67fa75a2c4a733fc491590419a  numpy-1.16.2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
4fce2fe91abe1e8b09232c5aaafa484a  numpy-1.16.2-cp37-cp37m-manylinux1_i686.whl
9cac844e1fc29972e63cb80512379805  numpy-1.16.2-cp37-cp37m-manylinux1_x86_64.whl
38d9fccdc6ae4420c9ee5303f1298974  numpy-1.16.2-cp37-cp37m-win32.whl
a1dcfcbe4993d77357bb2213aacf9e82  numpy-1.16.2-cp37-cp37m-win_amd64.whl
4fc754be7ec3e0f80b042d907e99f4ad  numpy-1.16.2.tar.gz
ec99ec2763a6be3817675f92b8847d3c  numpy-1.16.2.zip

SHA256

972ea92f9c1b54cc1c1a3d8508e326c0114aaf0f34996772a30f3f52b73b942f  numpy-1.16.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
1980f8d84548d74921685f68096911585fee393975f53797614b34d4f409b6da  numpy-1.16.2-cp27-cp27m-manylinux1_i686.whl
560ceaa24f971ab37dede7ba030fc5d8fa173305d94365f814d9523ffd5d5916  numpy-1.16.2-cp27-cp27m-manylinux1_x86_64.whl
62be044cd58da2a947b7e7b2252a10b42920df9520fc3d39f5c4c70d5460b8ba  numpy-1.16.2-cp27-cp27m-win32.whl
adab43bf657488300d3aeeb8030d7f024fcc86e3a9b8848741ea2ea903e56610  numpy-1.16.2-cp27-cp27m-win_amd64.whl
9f1d4865436f794accdabadc57a8395bd3faa755449b4f65b88b7df65ae05f89  numpy-1.16.2-cp27-cp27mu-manylinux1_i686.whl
fb3c83554f39f48f3fa3123b9c24aecf681b1c289f9334f8215c1d3c8e2f6e5b  numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl
6f65e37b5a331df950ef6ff03bd4136b3c0bbcf44d4b8e99135d68a537711b5a  numpy-1.16.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d3b3ed87061d2314ff3659bb73896e622252da52558f2380f12c421fbdee3d89  numpy-1.16.2-cp35-cp35m-manylinux1_i686.whl
893f4d75255f25a7b8516feb5766c6b63c54780323b9bd4bc51cdd7efc943c73  numpy-1.16.2-cp35-cp35m-manylinux1_x86_64.whl
3a0bd1edf64f6a911427b608a894111f9fcdb25284f724016f34a84c9a3a6ea9  numpy-1.16.2-cp35-cp35m-win32.whl
2b0b118ff547fecabc247a2668f48f48b3b1f7d63676ebc5be7352a5fd9e85a5  numpy-1.16.2-cp35-cp35m-win_amd64.whl
bd2834d496ba9b1bdda3a6cf3de4dc0d4a0e7be306335940402ec95132ad063d  numpy-1.16.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3f25f6c7b0d000017e5ac55977a3999b0b1a74491eacb3c1aa716f0e01f6dcd1  numpy-1.16.2-cp36-cp36m-manylinux1_i686.whl
23cc40313036cffd5d1873ef3ce2e949bdee0646c5d6f375bf7ee4f368db2511  numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl
22752cd809272671b273bb86df0f505f505a12368a3a5fc0aa811c7ece4dfd5c  numpy-1.16.2-cp36-cp36m-win32.whl
d20c0360940f30003a23c0adae2fe50a0a04f3e48dc05c298493b51fd6280197  numpy-1.16.2-cp36-cp36m-win_amd64.whl
80a41edf64a3626e729a62df7dd278474fc1726836552b67a8c6396fd7e86760  numpy-1.16.2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7a78cc4ddb253a55971115f8320a7ce28fd23a065fc33166d601f51760eecfa9  numpy-1.16.2-cp37-cp37m-manylinux1_i686.whl
9f4cd7832b35e736b739be03b55875706c8c3e5fe334a06210f1a61e5c2c8ca5  numpy-1.16.2-cp37-cp37m-manylinux1_x86_64.whl
dc235bf29a406dfda5790d01b998a1c01d7d37f449128c0b1b7d1c89a84fae8b  numpy-1.16.2-cp37-cp37m-win32.whl
4061c79ac2230594a7419151028e808239450e676c39e58302ad296232e3c2e8  numpy-1.16.2-cp37-cp37m-win_amd64.whl
8088221e6e27da8d5907729f0bfe798f526836f22cc59ae83a0f867e67416a3e  numpy-1.16.2.tar.gz
6c692e3879dde0b67a9dc78f9bfb6f61c666b4562fd8619632d7043fb5b691b0  numpy-1.16.2.zip
numpy -

Published by charris over 5 years ago

==========================
NumPy 1.16.1 Release Notes

The NumPy 1.16.1 release fixes bugs reported against the 1.16.0 release, and
also backports several enhancements from master that seem appropriate for a
release series that is the last to support Python 2.7. The wheels on PyPI are
linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.

Downstream developers building this release should use Cython >= 0.29.2 and, if
using OpenBLAS, OpenBLAS > v0.3.4.

If you are installing using pip, you may encounter a problem with older
installed versions of NumPy that pip did not delete becoming mixed with the
current version, resulting in an ImportError. That problem is particularly
common on Debian derived distributions due to a modified pip. The fix is to
make sure all previous NumPy versions installed by pip have been removed. See
#12736 <https://github.com/numpy/numpy/issues/12736>__ for discussion of the
issue. Note that previously this problem resulted in an AttributeError.

Contributors

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

  • Antoine Pitrou
  • Arcesio Castaneda Medina +
  • Charles Harris
  • Chris Markiewicz +
  • Christoph Gohlke
  • Christopher J. Markiewicz +
  • Daniel Hrisca +
  • EelcoPeacs +
  • Eric Wieser
  • Kevin Sheppard
  • Matti Picus
  • OBATA Akio +
  • Ralf Gommers
  • Sebastian Berg
  • Stephan Hoyer
  • Tyler Reddy

Enhancements

  • #12767: ENH: add mm->q floordiv
  • #12768: ENH: port np.core.overrides to C for speed
  • #12769: ENH: Add np.ctypeslib.as_ctypes_type(dtype), improve np.ctypeslib.as_ctypes
  • #12773: ENH: add "max difference" messages to np.testing.assert_array_equal...
  • #12820: ENH: Add mm->qm divmod
  • #12890: ENH: add _dtype_ctype to namespace for freeze analysis

Compatibility notes

  • The changed error message emited by array comparison testing functions may
    affect doctests. See below for detail.

  • Casting from double and single denormals to float16 has been corrected. In
    some rare cases, this may result in results being rounded up instead of down,
    changing the last bit (ULP) of the result.

New Features

divmod operation is now supported for two timedelta64 operands

The divmod operator now handles two np.timedelta64 operands, with
type signature mm->qm.

Improvements

Further improvements to ctypes support in np.ctypeslib

A new np.ctypeslib.as_ctypes_type function has been added, which can be
used to converts a dtype into a best-guess ctypes type. Thanks to this
new function, np.ctypeslib.as_ctypes now supports a much wider range of
array types, including structures, booleans, and integers of non-native
endianness.

Array comparison assertions include maximum differences

Error messages from array comparison tests such as
np.testing.assert_allclose now include "max absolute difference" and
"max relative difference," in addition to the previous "mismatch" percentage.
This information makes it easier to update absolute and relative error
tolerances.

Changes

timedelta64 % 0 behavior adjusted to return NaT

The modulus operation with two np.timedelta64 operands now returns
NaT in the case of division by zero, rather than returning zero

Checksums

MD5

456aae0a43311da1570a53baef7f5620  numpy-1.16.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
8f39da654cd27a96877955a2fbf3883f  numpy-1.16.1-cp27-cp27m-manylinux1_i686.whl
add6fcaf9b5007dca2fc966b918d585e  numpy-1.16.1-cp27-cp27m-manylinux1_x86_64.whl
b2193c7af769169229eef8d2371929c2  numpy-1.16.1-cp27-cp27m-win32.whl
3a7eba56bcebc52b223d63ab4b9bf029  numpy-1.16.1-cp27-cp27m-win_amd64.whl
3bc676163ce4d526c8305bc889f0594d  numpy-1.16.1-cp27-cp27mu-manylinux1_i686.whl
55ccd6d343be1e16e70159714ac74848  numpy-1.16.1-cp27-cp27mu-manylinux1_x86_64.whl
15bebbeddc5924243a010680e184b6e8  numpy-1.16.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
86aacbea051b7542a8bd3486d2fa79cd  numpy-1.16.1-cp35-cp35m-manylinux1_i686.whl
486ce91fd66ec19044d8faa7d00e619b  numpy-1.16.1-cp35-cp35m-manylinux1_x86_64.whl
f2665475de0378467d88e6d80ac47f09  numpy-1.16.1-cp35-cp35m-win32.whl
42b9d99bf4b03e3e9ae7aee8cbdff97c  numpy-1.16.1-cp35-cp35m-win_amd64.whl
269c80fde767b2b65abec775171aebed  numpy-1.16.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a9561d8a38ee7d52126dfe779429036d  numpy-1.16.1-cp36-cp36m-manylinux1_i686.whl
2d146e75063ce8aaa255ea06d6647fa2  numpy-1.16.1-cp36-cp36m-manylinux1_x86_64.whl
3a422881207202055c7530d3c4a63cc0  numpy-1.16.1-cp36-cp36m-win32.whl
641af9183978922d4eb610c0df1abb4a  numpy-1.16.1-cp36-cp36m-win_amd64.whl
8eca0834ffce217b61633a2ba16f9e98  numpy-1.16.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
df387b8e8ee398f2a6a46b18981ce7e3  numpy-1.16.1-cp37-cp37m-manylinux1_i686.whl
daaac731bf53b6f90bf381e30c0b0e35  numpy-1.16.1-cp37-cp37m-manylinux1_x86_64.whl
7443f622e549bf116ca561c1db6a4491  numpy-1.16.1-cp37-cp37m-win32.whl
18b7d994de469d38e26c75c27898fa4f  numpy-1.16.1-cp37-cp37m-win_amd64.whl
ae2e65a2f2d7c80a3264fb038157895c  numpy-1.16.1.tar.gz
dafda51934f645d888866f98424521ae  numpy-1.16.1.zip

SHA256

e9c88f173d31909d881a60f08a8494e63f1aff2a4052476b24d4f50e82c47e24  numpy-1.16.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
69c152f7c11bf3b4fc11bc4cc62eb0334371c0db6844ebace43b7c815b602805  numpy-1.16.1-cp27-cp27m-manylinux1_i686.whl
ae602ba425fb2b074e16d125cdce4f0194903da935b2e7fe284ebecca6d92e76  numpy-1.16.1-cp27-cp27m-manylinux1_x86_64.whl
4341a39fc085f31a583be505eabf00e17c619b469fef78dc7e8241385bfddaa4  numpy-1.16.1-cp27-cp27m-win32.whl
a863957192855c4c57f60a75a1ac06ce5362ad18506d362dd807e194b4baf3ce  numpy-1.16.1-cp27-cp27m-win_amd64.whl
62784b35df7de7ca4d0d81c5b6af5983f48c5cdef32fc3635b445674e56e3266  numpy-1.16.1-cp27-cp27mu-manylinux1_i686.whl
6ccfdcefd287f252cf1ea7a3f1656070da330c4a5658e43ad223269165cdf977  numpy-1.16.1-cp27-cp27mu-manylinux1_x86_64.whl
8bbee788d82c0ac656536de70e817af09b7694f5326b0ef08e5c1014fcb96bb3  numpy-1.16.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f69dde0c5a137d887676a8129373e44366055cf19d1b434e853310c7a1e68f93  numpy-1.16.1-cp35-cp35m-manylinux1_i686.whl
575cefd28d3e0da85b0864506ae26b06483ee4a906e308be5a7ad11083f9d757  numpy-1.16.1-cp35-cp35m-manylinux1_x86_64.whl
45080f065dcaa573ebecbfe13cdd86e8c0a68c4e999aa06bd365374ea7137706  numpy-1.16.1-cp35-cp35m-win32.whl
34dd4922aab246c39bf5df03ca653d6265e65971deca6784c956bf356bca6197  numpy-1.16.1-cp35-cp35m-win_amd64.whl
c2c39d69266621dd7464e2bb740d6eb5abc64ddc339cc97aa669f3bb4d75c103  numpy-1.16.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
392e2ea22b41a22c0289a88053204b616181288162ba78e6823e1760309d5277  numpy-1.16.1-cp36-cp36m-manylinux1_i686.whl
7298fbd73c0b3eff1d53dc9b9bdb7add8797bb55eeee38c8ccd7906755ba28af  numpy-1.16.1-cp36-cp36m-manylinux1_x86_64.whl
384e2dfa03da7c8d54f8f934f61b6a5e4e1ebb56a65b287567629d6c14578003  numpy-1.16.1-cp36-cp36m-win32.whl
2b0cca1049bd39d1879fa4d598624cafe82d35529c72de1b3d528d68031cdd95  numpy-1.16.1-cp36-cp36m-win_amd64.whl
b13faa258b20fa66d29011f99fdf498641ca74a0a6d9266bc27d83c70fea4a6a  numpy-1.16.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
485cb1eb4c9962f4cd042fed9424482ec1d83fee5dc2ef3f2552ac47852cb259  numpy-1.16.1-cp37-cp37m-manylinux1_i686.whl
0cdbbaa30ae69281b18dd995d3079c4e552ad6d5426977f66b9a2a95f11f552a  numpy-1.16.1-cp37-cp37m-manylinux1_x86_64.whl
79463d918d1bf3aeb9186e3df17ddb0baca443f41371df422f99ee94f4f2bbfe  numpy-1.16.1-cp37-cp37m-win32.whl
f1a29267ac29fff0913de0f11f3a9edfcd3f39595f467026c29376fad243ebe3  numpy-1.16.1-cp37-cp37m-win_amd64.whl
748369f4d5f60caf93e1d86cb22ad7fc5f82693f18804638f22bc55df27792ec  numpy-1.16.1.tar.gz
31d3fe5b673e99d33d70cfee2ea8fe8dccd60f265c3ed990873a88647e3dd288  numpy-1.16.1.zip
numpy -

Published by charris almost 6 years ago

==========================
NumPy 1.16.0 Release Notes

This NumPy release is the last one to support Python 2.7 and will be maintained
as a long term release with bug fixes until 2020. Support for Python 3.4 been
dropped, the supported Python versions are 2.7 and 3.5-3.7. The wheels on PyPI
are linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.

Downstream developers building this release should use Cython >= 0.29 and, if
using OpenBLAS, OpenBLAS > v0.3.4.

This release has seen a lot of refactoring and features many bug fixes, improved
code organization, and better cross platform compatibility. Not all of these
improvements will be visible to users, but they should help make maintenance
easier going forward.

Highlights

  • Experimental support for overriding numpy functions,
    see __array_function__ below.

  • The matmul function is now a ufunc. This provides better
    performance and allows overriding with __array_ufunc__.

  • Improved support for the ARM and POWER architectures.

  • Improved support for AIX and PyPy.

  • Improved interop with ctypes.

  • Improved support for PEP 3118.

New functions

  • New functions added to the numpy.lib.recfuntions module to ease the
    structured assignment changes:

    • assign_fields_by_name
    • structured_to_unstructured
    • unstructured_to_structured
    • apply_along_fields
    • require_fields

    See the user guide at https://docs.scipy.org/doc/numpy/user/basics.rec.html
    for more info.

New deprecations

  • The type dictionaries numpy.core.typeNA and numpy.core.sctypeNA are
    deprecated. They were buggy and not documented and will be removed in the
    1.18 release. Usenumpy.sctypeDict instead.

  • The numpy.asscalar function is deprecated. It is an alias to the more
    powerful numpy.ndarray.item, not tested, and fails for scalars.

  • The numpy.set_array_ops and numpy.get_array_ops functions are deprecated.
    As part of NEP 15, they have been deprecated along with the C-API functions
    :c:func:PyArray_SetNumericOps and :c:func:PyArray_GetNumericOps. Users
    who wish to override the inner loop functions in built-in ufuncs should use
    :c:func:PyUFunc_ReplaceLoopBySignature.

  • The numpy.unravel_index keyword argument dims is deprecated, use
    shape instead.

  • The numpy.histogram normed argument is deprecated. It was deprecated
    previously, but no warning was issued.

  • The positive operator (+) applied to non-numerical arrays is
    deprecated. See below for details.

  • Passing an iterator to the stack functions is deprecated

Expired deprecations

  • NaT comparisons now return False without a warning, finishing a
    deprecation cycle begun in NumPy 1.11.

  • np.lib.function_base.unique was removed, finishing a deprecation cycle
    begun in NumPy 1.4. Use numpy.unique instead.

  • multi-field indexing now returns views instead of copies, finishing a
    deprecation cycle begun in NumPy 1.7. The change was previously attempted in
    NumPy 1.14 but reverted until now.

  • np.PackageLoader and np.pkgload have been removed. These were
    deprecated in 1.10, had no tests, and seem to no longer work in 1.15.

Future changes

  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

f2py script on Windows

On Windows, the installed script for running f2py is now an .exe file
rather than a *.py file and should be run from the command line as f2py
whenever the Scripts directory is in the path. Running f2py as a module
python -m numpy.f2py [...] will work without path modification in any
version of NumPy.

NaT comparisons

Consistent with the behavior of NaN, all comparisons other than inequality
checks with datetime64 or timedelta64 NaT ("not-a-time") values now always
return False, and inequality checks with NaT now always return True.
This includes comparisons beteween NaT values. For compatibility with the
old behavior, use np.isnat to explicitly check for NaT or convert
datetime64/timedelta64 arrays with .astype(np.int64) before making
comparisons.

complex64/128 alignment has changed

The memory alignment of complex types is now the same as a C-struct composed of
two floating point values, while before it was equal to the size of the type.
For many users (for instance on x64/unix/gcc) this means that complex64 is now
4-byte aligned instead of 8-byte aligned. An important consequence is that
aligned structured dtypes may now have a different size. For instance,
np.dtype('c8,u1', align=True) used to have an itemsize of 16 (on x64/gcc)
but now it is 12.

More in detail, the complex64 type now has the same alignment as a C-struct
struct {float r, i;}, according to the compiler used to compile numpy, and
similarly for the complex128 and complex256 types.

nd_grid len removal

len(np.mgrid) and len(np.ogrid) are now considered nonsensical
and raise a TypeError.

np.unravel_index now accepts shape keyword argument

Previously, only the dims keyword argument was accepted
for specification of the shape of the array to be used
for unraveling. dims remains supported, but is now deprecated.

multi-field views return a view instead of a copy

Indexing a structured array with multiple fields, e.g., arr[['f1', 'f3']],
returns a view into the original array instead of a copy. The returned view
will often have extra padding bytes corresponding to intervening fields in the
original array, unlike before, which will affect code such as
arr[['f1', 'f3']].view('float64'). This change has been planned since numpy
1.7. Operations hitting this path have emitted FutureWarnings since then.
Additional FutureWarnings about this change were added in 1.12.

To help users update their code to account for these changes, a number of
functions have been added to the numpy.lib.recfunctions module which
safely allow such operations. For instance, the code above can be replaced
with structured_to_unstructured(arr[['f1', 'f3']], dtype='float64').
See the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html#accessing-multiple-fields>__.

C API changes

The :c:data:NPY_API_VERSION was incremented to 0x0000D, due to the addition
of:

  • :c:member:PyUFuncObject.core_dim_flags
  • :c:member:PyUFuncObject.core_dim_sizes
  • :c:member:PyUFuncObject.identity_value
  • :c:function:PyUFunc_FromFuncAndDataAndSignatureAndIdentity

New Features

Integrated squared error (ISE) estimator added to histogram

This method (bins='stone') for optimizing the bin number is a
generalization of the Scott's rule. The Scott's rule assumes the distribution
is approximately Normal, while the ISE_ is a non-parametric method based on
cross-validation.

.. _ISE: https://en.wikipedia.org/wiki/Histogram#Minimizing_cross-validation_estimated_squared_error

max_rows keyword added for np.loadtxt

New keyword max_rows in numpy.loadtxt sets the maximum rows of the
content to be read after skiprows, as in numpy.genfromtxt.

modulus operator support added for np.timedelta64 operands

The modulus (remainder) operator is now supported for two operands
of type np.timedelta64. The operands may have different units
and the return value will match the type of the operands.

Improvements

no-copy pickling of numpy arrays

Up to protocol 4, numpy array pickling created 2 spurious copies of the data
being serialized. With pickle protocol 5, and the PickleBuffer API, a
large variety of numpy arrays can now be serialized without any copy using
out-of-band buffers, and with one less copy using in-band buffers. This
results, for large arrays, in an up to 66% drop in peak memory usage.

build shell independence

NumPy builds should no longer interact with the host machine
shell directly. exec_command has been replaced with
subprocess.check_output where appropriate.

np.polynomial.Polynomial classes render in LaTeX in Jupyter notebooks

When used in a front-end that supports it, Polynomial instances are now
rendered through LaTeX. The current format is experimental, and is subject to
change.

randint and choice now work on empty distributions

Even when no elements needed to be drawn, np.random.randint and
np.random.choice raised an error when the arguments described an empty
distribution. This has been fixed so that e.g.
np.random.choice([], 0) == np.array([], dtype=float64).

linalg.lstsq, linalg.qr, and linalg.svd now work with empty arrays

Previously, a LinAlgError would be raised when an empty matrix/empty
matrices (with zero rows and/or columns) is/are passed in. Now outputs of
appropriate shapes are returned.

Chain exceptions to give better error messages for invalid PEP3118 format strings

This should help track down problems.

Einsum optimization path updates and efficiency improvements

Einsum was synchronized with the current upstream work.

numpy.angle and numpy.expand_dims now work on ndarray subclasses

In particular, they now work for masked arrays.

NPY_NO_DEPRECATED_API compiler warning suppression

Setting NPY_NO_DEPRECATED_API to a value of 0 will suppress the current compiler
warnings when the deprecated numpy API is used.

np.diff Added kwargs prepend and append

New kwargs prepend and append, allow for values to be inserted on
either end of the differences. Similar to options for ediff1d. Now the
inverse of cumsum can be obtained easily via prepend=0.

ARM support updated

Support for ARM CPUs has been updated to accommodate 32 and 64 bit targets,
and also big and little endian byte ordering. AARCH32 memory alignment issues
have been addressed. CI testing has been expanded to include AARCH64 targets
via the services of shippable.com.

Appending to build flags

numpy.distutils has always overridden rather than appended to LDFLAGS and
other similar such environment variables for compiling Fortran extensions.
Now, if the NPY_DISTUTILS_APPEND_FLAGS environment variable is set to 1, the
behavior will be appending. This applied to: LDFLAGS, F77FLAGS,
F90FLAGS, FREEFLAGS, FOPT, FDEBUG, and FFLAGS. See gh-11525 for more
details.

Generalized ufunc signatures now allow fixed-size dimensions

By using a numerical value in the signature of a generalized ufunc, one can
indicate that the given function requires input or output to have dimensions
with the given size. E.g., the signature of a function that converts a polar
angle to a two-dimensional cartesian unit vector would be ()->(2); that
for one that converts two spherical angles to a three-dimensional unit vector
would be (),()->(3); and that for the cross product of two
three-dimensional vectors would be (3),(3)->(3).

Note that to the elementary function these dimensions are not treated any
differently from variable ones indicated with a name starting with a letter;
the loop still is passed the corresponding size, but it can now count on that
size being equal to the fixed one given in the signature.

Generalized ufunc signatures now allow flexible dimensions

Some functions, in particular numpy's implementation of @ as matmul,
are very similar to generalized ufuncs in that they operate over core
dimensions, but one could not present them as such because they were able to
deal with inputs in which a dimension is missing. To support this, it is now
allowed to postfix a dimension name with a question mark to indicate that the
dimension does not necessarily have to be present.

With this addition, the signature for matmul can be expressed as
(m?,n),(n,p?)->(m?,p?). This indicates that if, e.g., the second operand
has only one dimension, for the purposes of the elementary function it will be
treated as if that input has core shape (n, 1), and the output has the
corresponding core shape of (m, 1). The actual output array, however, has
the flexible dimension removed, i.e., it will have shape (..., m).
Similarly, if both arguments have only a single dimension, the inputs will be
presented as having shapes (1, n) and (n, 1) to the elementary
function, and the output as (1, 1), while the actual output array returned
will have shape (). In this way, the signature allows one to use a
single elementary function for four related but different signatures,
(m,n),(n,p)->(m,p), (n),(n,p)->(p), (m,n),(n)->(m) and
(n),(n)->().

np.clip and the clip method check for memory overlap

The out argument to these functions is now always tested for memory overlap
to avoid corrupted results when memory overlap occurs.

New value unscaled for option cov in np.polyfit

A further possible value has been added to the cov parameter of the
np.polyfit function. With cov='unscaled' the scaling of the covariance
matrix is disabled completely (similar to setting absolute_sigma=True in
scipy.optimize.curve_fit). This would be useful in occasions, where the
weights are given by 1/sigma with sigma being the (known) standard errors of
(Gaussian distributed) data points, in which case the unscaled matrix is
already a correct estimate for the covariance matrix.

Detailed docstrings for scalar numeric types

The help function, when applied to numeric types such as numpy.intc,
numpy.int_, and numpy.longlong, now lists all of the aliased names for that
type, distinguishing between platform -dependent and -independent aliases.

__module__ attribute now points to public modules

The __module__ attribute on most NumPy functions has been updated to refer
to the preferred public module from which to access a function, rather than
the module in which the function happens to be defined. This produces more
informative displays for functions in tools such as IPython, e.g., instead of
<function 'numpy.core.fromnumeric.sum'> you now see
<function 'numpy.sum'>.

Large allocations marked as suitable for transparent hugepages

On systems that support transparent hugepages over the madvise system call
numpy now marks that large memory allocations can be backed by hugepages which
reduces page fault overhead and can in some fault heavy cases improve
performance significantly. On Linux the setting for huge pages to be used,
/sys/kernel/mm/transparent_hugepage/enabled, must be at least madvise.
Systems which already have it set to always will not see much difference as
the kernel will automatically use huge pages where appropriate.

Users of very old Linux kernels (~3.x and older) should make sure that
/sys/kernel/mm/transparent_hugepage/defrag is not set to always to avoid
performance problems due concurrency issues in the memory defragmentation.

Alpine Linux (and other musl c library distros) support

We now default to use fenv.h for floating point status error reporting.
Previously we had a broken default that sometimes would not report underflow,
overflow, and invalid floating point operations. Now we can support non-glibc
distrubutions like Alpine Linux as long as they ship fenv.h.

Speedup np.block for large arrays

Large arrays (greater than 512 * 512) now use a blocking algorithm based on
copying the data directly into the appropriate slice of the resulting array.
This results in significant speedups for these large arrays, particularly for
arrays being blocked along more than 2 dimensions.

arr.ctypes.data_as(...) holds a reference to arr

Previously the caller was responsible for keeping the array alive for the
lifetime of the pointer.

Speedup ``np.take`` for read-only arrays
----------------------------------------
The implementation of ``np.take`` no longer makes an unnecessary copy of the
source array when its ``writeable`` flag is set to ``False``.

Support path-like objects for more functions
--------------------------------------------
The ``np.core.records.fromfile`` function now supports ``pathlib.Path``
and other path-like objects in addition to a file object. Furthermore, the
``np.load`` function now also supports path-like objects when using memory
mapping (``mmap_mode`` keyword argument).

Better behaviour of ufunc identities during reductions
------------------------------------------------------
Universal functions have an ``.identity`` which is used when ``.reduce`` is
called on an empty axis.

As of this release, the logical binary ufuncs, `logical_and`, `logical_or`,
and `logical_xor`, now have ``identity`` s of type `bool`, where previously they
were of type `int`. This restores the 1.14 behavior of getting ``bool`` s when
reducing empty object arrays with these ufuncs, while also keeping the 1.15
behavior of getting ``int`` s when reducing empty object arrays with arithmetic
ufuncs like ``add`` and ``multiply``.

Additionally, `logaddexp` now has an identity of ``-inf``, allowing it to be
called on empty sequences, where previously it could not be.

This is possible thanks to the new
:c:function:`PyUFunc_FromFuncAndDataAndSignatureAndIdentity`, which allows
arbitrary values to be used as identities now.

Improved conversion from ctypes objects
---------------------------------------
Numpy has always supported taking a value or type from ``ctypes`` and
converting it into an array or dtype, but only behaved correctly for simpler
types. As of this release, this caveat is lifted - now:

* The ``_pack_`` attribute of ``ctypes.Structure``, used to emulate C's
  ``__attribute__((packed))``, is respected.
* Endianness of all ctypes objects is preserved
* ``ctypes.Union`` is supported
* Non-representable constructs raise exceptions, rather than producing
  dangerously incorrect results:

  * Bitfields are no longer interpreted as sub-arrays
  * Pointers are no longer replaced with the type that they point to

A new ``ndpointer.contents`` member
-----------------------------------
This matches the ``.contents`` member of normal ctypes arrays, and can be used
to construct an ``np.array`` around the pointers contents.  This replaces
``np.array(some_nd_pointer)``, which stopped working in 1.15.  As a side effect
of this change, ``ndpointer`` now supports dtypes with overlapping fields and
padding.

``matmul`` is now a ``ufunc``
-----------------------------
`numpy.matmul` is now a ufunc which means that both the function and the
``__matmul__`` operator can now be overridden by ``__array_ufunc__``. Its
implementation has also changed. It uses the same BLAS routines as
`numpy.dot`, ensuring its performance is similar for large matrices.

Start and stop arrays for ``linspace``, ``logspace`` and ``geomspace``
----------------------------------------------------------------------
These functions used to be limited to scalar stop and start values, but can
now take arrays, which will be properly broadcast and result in an output
which has one axis prepended.  This can be used, e.g., to obtain linearly
interpolated points between sets of points.

CI extended with additional services
------------------------------------
We now use additional free CI services, thanks to the companies that provide:

* Codecoverage testing via codecov.io
* Arm testing via shippable.com
* Additional test runs on azure pipelines

These are in addition to our continued use of travis, appveyor (for wheels) and
LGTM


Changes
=======

Comparison ufuncs will now error rather than return NotImplemented
------------------------------------------------------------------
Previously, comparison ufuncs such as ``np.equal`` would return
`NotImplemented` if their arguments had structured dtypes, to help comparison
operators such as ``__eq__`` deal with those.  This is no longer needed, as the
relevant logic has moved to the comparison operators proper (which thus do
continue to return `NotImplemented` as needed). Hence, like all other ufuncs,
the comparison ufuncs will now error on structured dtypes.

Positive will now raise a deprecation warning for non-numerical arrays
----------------------------------------------------------------------
Previously, ``+array`` unconditionally returned a copy. Now, it will
raise a ``DeprecationWarning`` if the array is not numerical (i.e.,
if ``np.positive(array)`` raises a ``TypeError``. For ``ndarray``
subclasses that override the default ``__array_ufunc__`` implementation,
the ``TypeError`` is passed on.

``NDArrayOperatorsMixin`` now implements matrix multiplication
--------------------------------------------------------------
Previously, ``np.lib.mixins.NDArrayOperatorsMixin`` did not implement the
special methods for Python's matrix multiplication operator (``@``). This has
changed now that ``matmul`` is a ufunc and can be overridden using
``__array_ufunc__``.

The scaling of the covariance matrix in ``np.polyfit`` is different
-------------------------------------------------------------------
So far, ``np.polyfit`` used a non-standard factor in the scaling of the the
covariance matrix. Namely, rather than using the standard ``chisq/(M-N)``, it
scaled it with ``chisq/(M-N-2)`` where M is the number of data points and N is the
number of parameters.  This scaling is inconsistent with other fitting programs
such as e.g. ``scipy.optimize.curve_fit`` and was changed to ``chisq/(M-N)``.

``maximum`` and ``minimum`` no longer emit warnings
---------------------------------------------------
As part of code introduced in 1.10,  ``float32`` and ``float64`` set invalid
float status when a Nan is encountered in `numpy.maximum` and `numpy.minimum`,
when using SSE2 semantics. This caused a `RuntimeWarning` to sometimes be
emitted. In 1.15 we fixed the inconsistencies which caused the warnings to
become more conspicuous. Now no warnings will be emitted.

Umath and multiarray c-extension modules merged into a single module
--------------------------------------------------------------------
The two modules were merged, according to `NEP 15`_. Previously `np.core.umath`
and `np.core.multiarray` were seperate c-extension modules. They are now python
wrappers to the single `np.core/_multiarray_math` c-extension module.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html

``getfield`` validity checks extended
-------------------------------------
`numpy.ndarray.getfield` now checks the dtype and offset arguments to prevent
accessing invalid memory locations.

NumPy functions now support overrides with ``__array_function__``
-----------------------------------------------------------------
It is now possible to override the implementation of almost all NumPy functions
on non-NumPy arrays by defining a ``__array_function__`` method, as described
in `NEP 18`_. The sole exception are functions for explicitly casting to NumPy
arrays such as ``np.array``. As noted in the NEP, this feature remains
experimental and the details of how to implement such overrides may change in
the future.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html
.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

Arrays based off readonly buffers cannot be set ``writeable``
-------------------------------------------------------------
We now disallow setting the ``writeable`` flag True on arrays created
from ``fromstring(readonly-buffer)``.

Checksums
=========

MD5
---

    67d46af4e62111285f27a9c5731f16f9  numpy-1.16.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    a1afdd521bf4480f4a5f43f39a345a80  numpy-1.16.0-cp27-cp27m-manylinux1_i686.whl
    66d2e3fee4504c371da147a56fa9f900  numpy-1.16.0-cp27-cp27m-manylinux1_x86_64.whl
    63648ca2ba0dae7f7f57cc8fc87f0fba  numpy-1.16.0-cp27-cp27m-win32.whl
    9a53cf0c5e77f02ea9b5ff3587a1f8ac  numpy-1.16.0-cp27-cp27m-win_amd64.whl
    7253e6e78dc1ae134abcf40201ca73ad  numpy-1.16.0-cp27-cp27mu-manylinux1_i686.whl
    c47496091e10e31eeb9d9b07f3136237  numpy-1.16.0-cp27-cp27mu-manylinux1_x86_64.whl
    048918abcf3936c947d06f1ee629757e  numpy-1.16.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    968ea61a147bd500b5d858b91ccf709d  numpy-1.16.0-cp35-cp35m-manylinux1_i686.whl
    ee52de6e269576f468285b0f45fe9618  numpy-1.16.0-cp35-cp35m-manylinux1_x86_64.whl
    608e1d02d014bda5c4081881a25f9fbc  numpy-1.16.0-cp35-cp35m-win32.whl
    4ed0e6114562eefb75da7aadc3db4f8a  numpy-1.16.0-cp35-cp35m-win_amd64.whl
    809ed96a113cf46e81ae50c9703e7a5c  numpy-1.16.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    26ceb7aa63fa82bc444e69156444fe6f  numpy-1.16.0-cp36-cp36m-manylinux1_i686.whl
    5877c113fcd82198ad2285e3074a089c  numpy-1.16.0-cp36-cp36m-manylinux1_x86_64.whl
    2ce0cc7d22e3f94e51315c1df4fd81bd  numpy-1.16.0-cp36-cp36m-win32.whl
    b1e5a08c6a85c8a51f8039b3dc3dad3d  numpy-1.16.0-cp36-cp36m-win_amd64.whl
    748fe792a69f79b0c3a926139b23bdbc  numpy-1.16.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    d424c537c28510340f06a317608d7743  numpy-1.16.0-cp37-cp37m-manylinux1_i686.whl
    8d87c0b1f8d7ad46b1976328d6c66cef  numpy-1.16.0-cp37-cp37m-manylinux1_x86_64.whl
    25da2b41f81d4862bb36a07218477ea6  numpy-1.16.0-cp37-cp37m-win32.whl
    22af7b6ff2da30fca2334886fdbf8573  numpy-1.16.0-cp37-cp37m-win_amd64.whl
    d30393335b59081555fa29c680ab4784  numpy-1.16.0.tar.gz
    90b5ec981eb9746785f43e9bfc003fed  numpy-1.16.0.zip

SHA256
------

    a80ecac5664f420556a725a5646f2d1c60a7c0489d68a38b5056393e949e27ac  numpy-1.16.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    be43df2c563e264b38e3318574d80fc8f365df3fb745270934d2dbe54e006f41  numpy-1.16.0-cp27-cp27m-manylinux1_i686.whl
    f00a2c21f60284e024bba351875f3501c6d5817d64997a0afe4f4355161a8889  numpy-1.16.0-cp27-cp27m-manylinux1_x86_64.whl
    5774d49516c37fd3fc1f232e033d2b152f3323ca4c7bfefd7277e4c67f3c08b4  numpy-1.16.0-cp27-cp27m-win32.whl
    25600e8901012180a1b7cd1ac3e27e7793586ecd432383191929ac2edf37ff5d  numpy-1.16.0-cp27-cp27m-win_amd64.whl
    803b2af862dcad6c11231ea3cd1015d1293efd6c87088be33d713a9b23e9e419  numpy-1.16.0-cp27-cp27mu-manylinux1_i686.whl
    24a9c287a4a1c427c2d45bf7c4fc6180c52a08fa0990d4c94e4c86a9b1e23ba5  numpy-1.16.0-cp27-cp27mu-manylinux1_x86_64.whl
    96e49a0c82b4e3130093002f625545104037c2d25866fa2e0c90d6e54f5a1fbc  numpy-1.16.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    a1dd8221f0e69038748f47b8bb3248d0b9ecdf13fe837440951c3d5ff72639bb  numpy-1.16.0-cp35-cp35m-manylinux1_i686.whl
    3e90a9fce378114b6c2fc01fff7423300515c7b54b7cc71b02a22bc0bd7dfdd8  numpy-1.16.0-cp35-cp35m-manylinux1_x86_64.whl
    0470c5dc32212a08ebc2405f32e8ceb9a5b1c8ac61a2daf9835ec0856a220495  numpy-1.16.0-cp35-cp35m-win32.whl
    c40cb17188f6ae3c5b6efc6f0fd43a7ddd219b7807fe179e71027849a9b91afc  numpy-1.16.0-cp35-cp35m-win_amd64.whl
    00a458d6821b1e87be873f2126d5646b901047a7480e8ae9773ecf214f0e19f3  numpy-1.16.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    f1232f98a6bbd6d1678249f94028bccc541bbc306aa5c4e1471a881b0e5a3409  numpy-1.16.0-cp36-cp36m-manylinux1_i686.whl
    2d279bd99329e72c30937bdef82b6dc7779c7607c5a379bab1bf76be1f4c1422  numpy-1.16.0-cp36-cp36m-manylinux1_x86_64.whl
    95c830b09626508f7808ce7f1344fb98068e63143e6050e5dc3063142fc60007  numpy-1.16.0-cp36-cp36m-win32.whl
    ef4ae41add536cb825d8aa029c15ef510aead06ea5b68daea64f0b9ecbff17db  numpy-1.16.0-cp36-cp36m-win_amd64.whl
    32af2bcf4bb7631dac19736a6e092ec9715e770dcaa1f85fcd99dec5040b2a4d  numpy-1.16.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    c6251e0f0ecac53ba2b99d9f0cc16fa9021914a78869c38213c436ba343641f0  numpy-1.16.0-cp37-cp37m-manylinux1_i686.whl
    b19a47ff1bd2fca0cacdfa830c967746764c32dca6a0c0328d9c893f4bfe2f6b  numpy-1.16.0-cp37-cp37m-manylinux1_x86_64.whl
    fea682f6ddc09517df0e6d5caad9613c6d91a42232aeb082df67e4d205de19cc  numpy-1.16.0-cp37-cp37m-win32.whl
    64ff21aac30d40c20ba994c94a08d439b8ced3b9c704af897e9e4ba09d10e62c  numpy-1.16.0-cp37-cp37m-win_amd64.whl
    9b98898687b5dd05c4ac7bcf7e8669a50dd2bb19591b772e045e5806c23e0ca4  numpy-1.16.0.tar.gz
    cb189bd98b2e7ac02df389b6212846ab20661f4bafe16b5a70a6f1728c1cc7cb  numpy-1.16.0.zip
numpy -

Published by charris almost 6 years ago

==========================
NumPy 1.16.0 Release Notes

This NumPy release is the last one to support Python 2.7 and will be maintained
as a long term release with bug fixes until 2020. Support for Python 3.4 been
dropped, the supported Python versions are 2.7 and 3.5-3.7. The wheels on PyPI
are linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.

Downstream developers building this release should use Cython >= 0.29 and, if
using OpenBLAS, OpenBLAS > v0.3.4.

This release has seen a lot of refactoring and features many bug fixes, improved
code organization, and better cross platform compatibility. Not all of these
improvements will be visible to users, but they should help make maintenance
easier going forward.

Highlights

  • Experimental support for overriding numpy functions,
    see __array_function__ below.

  • The matmul function is now a ufunc. This provides better
    performance and allows overriding with __array_ufunc__.

  • Improved support for the ARM and POWER architectures.

  • Improved support for AIX and PyPy.

  • Improved interop with ctypes.

  • Improved support for PEP 3118.

New functions

  • New functions added to the numpy.lib.recfuntions module to ease the
    structured assignment changes:

    • assign_fields_by_name
    • structured_to_unstructured
    • unstructured_to_structured
    • apply_along_fields
    • require_fields

    See the user guide at https://docs.scipy.org/doc/numpy/user/basics.rec.html
    for more info.

New deprecations

  • The type dictionaries numpy.core.typeNA and numpy.core.sctypeNA are
    deprecated. They were buggy and not documented and will be removed in the
    1.18 release. Usenumpy.sctypeDict instead.

  • The numpy.asscalar function is deprecated. It is an alias to the more
    powerful numpy.ndarray.item, not tested, and fails for scalars.

  • The numpy.set_array_ops and numpy.get_array_ops functions are deprecated.
    As part of NEP 15, they have been deprecated along with the C-API functions
    :c:func:PyArray_SetNumericOps and :c:func:PyArray_GetNumericOps. Users
    who wish to override the inner loop functions in built-in ufuncs should use
    :c:func:PyUFunc_ReplaceLoopBySignature.

  • The numpy.unravel_index keyword argument dims is deprecated, use
    shape instead.

  • The numpy.histogram normed argument is deprecated. It was deprecated
    previously, but no warning was issued.

  • The positive operator (+) applied to non-numerical arrays is
    deprecated. See below for details.

  • Passing an iterator to the stack functions is deprecated

Expired deprecations

  • NaT comparisons now return False without a warning, finishing a
    deprecation cycle begun in NumPy 1.11.

  • np.lib.function_base.unique was removed, finishing a deprecation cycle
    begun in NumPy 1.4. Use numpy.unique instead.

  • multi-field indexing now returns views instead of copies, finishing a
    deprecation cycle begun in NumPy 1.7. The change was previously attempted in
    NumPy 1.14 but reverted until now.

  • np.PackageLoader and np.pkgload have been removed. These were
    deprecated in 1.10, had no tests, and seem to no longer work in 1.15.

Future changes

  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

f2py script on Windows

On Windows, the installed script for running f2py is now an .exe file
rather than a *.py file and should be run from the command line as f2py
whenever the Scripts directory is in the path. Running f2py as a module
python -m numpy.f2py [...] will work without path modification in any
version of NumPy.

NaT comparisons

Consistent with the behavior of NaN, all comparisons other than inequality
checks with datetime64 or timedelta64 NaT ("not-a-time") values now always
return False, and inequality checks with NaT now always return True.
This includes comparisons beteween NaT values. For compatibility with the
old behavior, use np.isnat to explicitly check for NaT or convert
datetime64/timedelta64 arrays with .astype(np.int64) before making
comparisons.

complex64/128 alignment has changed

The memory alignment of complex types is now the same as a C-struct composed of
two floating point values, while before it was equal to the size of the type.
For many users (for instance on x64/unix/gcc) this means that complex64 is now
4-byte aligned instead of 8-byte aligned. An important consequence is that
aligned structured dtypes may now have a different size. For instance,
np.dtype('c8,u1', align=True) used to have an itemsize of 16 (on x64/gcc)
but now it is 12.

More in detail, the complex64 type now has the same alignment as a C-struct
struct {float r, i;}, according to the compiler used to compile numpy, and
similarly for the complex128 and complex256 types.

nd_grid len removal

len(np.mgrid) and len(np.ogrid) are now considered nonsensical
and raise a TypeError.

np.unravel_index now accepts shape keyword argument

Previously, only the dims keyword argument was accepted
for specification of the shape of the array to be used
for unraveling. dims remains supported, but is now deprecated.

multi-field views return a view instead of a copy

Indexing a structured array with multiple fields, e.g., arr[['f1', 'f3']],
returns a view into the original array instead of a copy. The returned view
will often have extra padding bytes corresponding to intervening fields in the
original array, unlike before, which will affect code such as
arr[['f1', 'f3']].view('float64'). This change has been planned since numpy
1.7. Operations hitting this path have emitted FutureWarnings since then.
Additional FutureWarnings about this change were added in 1.12.

To help users update their code to account for these changes, a number of
functions have been added to the numpy.lib.recfunctions module which
safely allow such operations. For instance, the code above can be replaced
with structured_to_unstructured(arr[['f1', 'f3']], dtype='float64').
See the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html#accessing-multiple-fields>__.

C API changes

The :c:data:NPY_API_VERSION was incremented to 0x0000D, due to the addition
of:

  • :c:member:PyUFuncObject.core_dim_flags
  • :c:member:PyUFuncObject.core_dim_sizes
  • :c:member:PyUFuncObject.identity_value
  • :c:function:PyUFunc_FromFuncAndDataAndSignatureAndIdentity

New Features

Integrated squared error (ISE) estimator added to histogram

This method (bins='stone') for optimizing the bin number is a
generalization of the Scott's rule. The Scott's rule assumes the distribution
is approximately Normal, while the ISE_ is a non-parametric method based on
cross-validation.

.. _ISE: https://en.wikipedia.org/wiki/Histogram#Minimizing_cross-validation_estimated_squared_error

max_rows keyword added for np.loadtxt

New keyword max_rows in numpy.loadtxt sets the maximum rows of the
content to be read after skiprows, as in numpy.genfromtxt.

modulus operator support added for np.timedelta64 operands

The modulus (remainder) operator is now supported for two operands
of type np.timedelta64. The operands may have different units
and the return value will match the type of the operands.

Improvements

no-copy pickling of numpy arrays

Up to protocol 4, numpy array pickling created 2 spurious copies of the data
being serialized. With pickle protocol 5, and the PickleBuffer API, a
large variety of numpy arrays can now be serialized without any copy using
out-of-band buffers, and with one less copy using in-band buffers. This
results, for large arrays, in an up to 66% drop in peak memory usage.

build shell independence

NumPy builds should no longer interact with the host machine
shell directly. exec_command has been replaced with
subprocess.check_output where appropriate.

np.polynomial.Polynomial classes render in LaTeX in Jupyter notebooks

When used in a front-end that supports it, Polynomial instances are now
rendered through LaTeX. The current format is experimental, and is subject to
change.

randint and choice now work on empty distributions

Even when no elements needed to be drawn, np.random.randint and
np.random.choice raised an error when the arguments described an empty
distribution. This has been fixed so that e.g.
np.random.choice([], 0) == np.array([], dtype=float64).

linalg.lstsq, linalg.qr, and linalg.svd now work with empty arrays

Previously, a LinAlgError would be raised when an empty matrix/empty
matrices (with zero rows and/or columns) is/are passed in. Now outputs of
appropriate shapes are returned.

Chain exceptions to give better error messages for invalid PEP3118 format strings

This should help track down problems.

Einsum optimization path updates and efficiency improvements

Einsum was synchronized with the current upstream work.

numpy.angle and numpy.expand_dims now work on ndarray subclasses

In particular, they now work for masked arrays.

NPY_NO_DEPRECATED_API compiler warning suppression

Setting NPY_NO_DEPRECATED_API to a value of 0 will suppress the current compiler
warnings when the deprecated numpy API is used.

np.diff Added kwargs prepend and append

New kwargs prepend and append, allow for values to be inserted on
either end of the differences. Similar to options for ediff1d. Now the
inverse of cumsum can be obtained easily via prepend=0.

ARM support updated

Support for ARM CPUs has been updated to accommodate 32 and 64 bit targets,
and also big and little endian byte ordering. AARCH32 memory alignment issues
have been addressed. CI testing has been expanded to include AARCH64 targets
via the services of shippable.com.

Appending to build flags

numpy.distutils has always overridden rather than appended to LDFLAGS and
other similar such environment variables for compiling Fortran extensions.
Now, if the NPY_DISTUTILS_APPEND_FLAGS environment variable is set to 1, the
behavior will be appending. This applied to: LDFLAGS, F77FLAGS,
F90FLAGS, FREEFLAGS, FOPT, FDEBUG, and FFLAGS. See gh-11525 for more
details.

Generalized ufunc signatures now allow fixed-size dimensions

By using a numerical value in the signature of a generalized ufunc, one can
indicate that the given function requires input or output to have dimensions
with the given size. E.g., the signature of a function that converts a polar
angle to a two-dimensional cartesian unit vector would be ()->(2); that
for one that converts two spherical angles to a three-dimensional unit vector
would be (),()->(3); and that for the cross product of two
three-dimensional vectors would be (3),(3)->(3).

Note that to the elementary function these dimensions are not treated any
differently from variable ones indicated with a name starting with a letter;
the loop still is passed the corresponding size, but it can now count on that
size being equal to the fixed one given in the signature.

Generalized ufunc signatures now allow flexible dimensions

Some functions, in particular numpy's implementation of @ as matmul,
are very similar to generalized ufuncs in that they operate over core
dimensions, but one could not present them as such because they were able to
deal with inputs in which a dimension is missing. To support this, it is now
allowed to postfix a dimension name with a question mark to indicate that the
dimension does not necessarily have to be present.

With this addition, the signature for matmul can be expressed as
(m?,n),(n,p?)->(m?,p?). This indicates that if, e.g., the second operand
has only one dimension, for the purposes of the elementary function it will be
treated as if that input has core shape (n, 1), and the output has the
corresponding core shape of (m, 1). The actual output array, however, has
the flexible dimension removed, i.e., it will have shape (..., m).
Similarly, if both arguments have only a single dimension, the inputs will be
presented as having shapes (1, n) and (n, 1) to the elementary
function, and the output as (1, 1), while the actual output array returned
will have shape (). In this way, the signature allows one to use a
single elementary function for four related but different signatures,
(m,n),(n,p)->(m,p), (n),(n,p)->(p), (m,n),(n)->(m) and
(n),(n)->().

np.clip and the clip method check for memory overlap

The out argument to these functions is now always tested for memory overlap
to avoid corrupted results when memory overlap occurs.

New value unscaled for option cov in np.polyfit

A further possible value has been added to the cov parameter of the
np.polyfit function. With cov='unscaled' the scaling of the covariance
matrix is disabled completely (similar to setting absolute_sigma=True in
scipy.optimize.curve_fit). This would be useful in occasions, where the
weights are given by 1/sigma with sigma being the (known) standard errors of
(Gaussian distributed) data points, in which case the unscaled matrix is
already a correct estimate for the covariance matrix.

Detailed docstrings for scalar numeric types

The help function, when applied to numeric types such as numpy.intc,
numpy.int_, and numpy.longlong, now lists all of the aliased names for that
type, distinguishing between platform -dependent and -independent aliases.

__module__ attribute now points to public modules

The __module__ attribute on most NumPy functions has been updated to refer
to the preferred public module from which to access a function, rather than
the module in which the function happens to be defined. This produces more
informative displays for functions in tools such as IPython, e.g., instead of
<function 'numpy.core.fromnumeric.sum'> you now see
<function 'numpy.sum'>.

Large allocations marked as suitable for transparent hugepages

On systems that support transparent hugepages over the madvise system call
numpy now marks that large memory allocations can be backed by hugepages which
reduces page fault overhead and can in some fault heavy cases improve
performance significantly. On Linux the setting for huge pages to be used,
/sys/kernel/mm/transparent_hugepage/enabled, must be at least madvise.
Systems which already have it set to always will not see much difference as
the kernel will automatically use huge pages where appropriate.

Users of very old Linux kernels (~3.x and older) should make sure that
/sys/kernel/mm/transparent_hugepage/defrag is not set to always to avoid
performance problems due concurrency issues in the memory defragmentation.

Alpine Linux (and other musl c library distros) support

We now default to use fenv.h for floating point status error reporting.
Previously we had a broken default that sometimes would not report underflow,
overflow, and invalid floating point operations. Now we can support non-glibc
distrubutions like Alpine Linux as long as they ship fenv.h.

Speedup np.block for large arrays

Large arrays (greater than 512 * 512) now use a blocking algorithm based on
copying the data directly into the appropriate slice of the resulting array.
This results in significant speedups for these large arrays, particularly for
arrays being blocked along more than 2 dimensions.

arr.ctypes.data_as(...) holds a reference to arr

Previously the caller was responsible for keeping the array alive for the
lifetime of the pointer.

Speedup ``np.take`` for read-only arrays
----------------------------------------
The implementation of ``np.take`` no longer makes an unnecessary copy of the
source array when its ``writeable`` flag is set to ``False``.

Support path-like objects for more functions
--------------------------------------------
The ``np.core.records.fromfile`` function now supports ``pathlib.Path``
and other path-like objects in addition to a file object. Furthermore, the
``np.load`` function now also supports path-like objects when using memory
mapping (``mmap_mode`` keyword argument).

Better behaviour of ufunc identities during reductions
------------------------------------------------------
Universal functions have an ``.identity`` which is used when ``.reduce`` is
called on an empty axis.

As of this release, the logical binary ufuncs, `logical_and`, `logical_or`,
and `logical_xor`, now have ``identity`` s of type `bool`, where previously they
were of type `int`. This restores the 1.14 behavior of getting ``bool`` s when
reducing empty object arrays with these ufuncs, while also keeping the 1.15
behavior of getting ``int`` s when reducing empty object arrays with arithmetic
ufuncs like ``add`` and ``multiply``.

Additionally, `logaddexp` now has an identity of ``-inf``, allowing it to be
called on empty sequences, where previously it could not be.

This is possible thanks to the new
:c:function:`PyUFunc_FromFuncAndDataAndSignatureAndIdentity`, which allows
arbitrary values to be used as identities now.

Improved conversion from ctypes objects
---------------------------------------
Numpy has always supported taking a value or type from ``ctypes`` and
converting it into an array or dtype, but only behaved correctly for simpler
types. As of this release, this caveat is lifted - now:

* The ``_pack_`` attribute of ``ctypes.Structure``, used to emulate C's
  ``__attribute__((packed))``, is respected.
* Endianness of all ctypes objects is preserved
* ``ctypes.Union`` is supported
* Non-representable constructs raise exceptions, rather than producing
  dangerously incorrect results:

  * Bitfields are no longer interpreted as sub-arrays
  * Pointers are no longer replaced with the type that they point to

A new ``ndpointer.contents`` member
-----------------------------------
This matches the ``.contents`` member of normal ctypes arrays, and can be used
to construct an ``np.array`` around the pointers contents.  This replaces
``np.array(some_nd_pointer)``, which stopped working in 1.15.  As a side effect
of this change, ``ndpointer`` now supports dtypes with overlapping fields and
padding.

``matmul`` is now a ``ufunc``
-----------------------------
`numpy.matmul` is now a ufunc which means that both the function and the
``__matmul__`` operator can now be overridden by ``__array_ufunc__``. Its
implementation has also changed. It uses the same BLAS routines as
`numpy.dot`, ensuring its performance is similar for large matrices.

Start and stop arrays for ``linspace``, ``logspace`` and ``geomspace``
----------------------------------------------------------------------
These functions used to be limited to scalar stop and start values, but can
now take arrays, which will be properly broadcast and result in an output
which has one axis prepended.  This can be used, e.g., to obtain linearly
interpolated points between sets of points.

CI extended with additional services
------------------------------------
We now use additional free CI services, thanks to the companies that provide:

* Codecoverage testing via codecov.io
* Arm testing via shippable.com
* Additional test runs on azure pipelines

These are in addition to our continued use of travis, appveyor (for wheels) and
LGTM


Changes
=======

Comparison ufuncs will now error rather than return NotImplemented
------------------------------------------------------------------
Previously, comparison ufuncs such as ``np.equal`` would return
`NotImplemented` if their arguments had structured dtypes, to help comparison
operators such as ``__eq__`` deal with those.  This is no longer needed, as the
relevant logic has moved to the comparison operators proper (which thus do
continue to return `NotImplemented` as needed). Hence, like all other ufuncs,
the comparison ufuncs will now error on structured dtypes.

Positive will now raise a deprecation warning for non-numerical arrays
----------------------------------------------------------------------
Previously, ``+array`` unconditionally returned a copy. Now, it will
raise a ``DeprecationWarning`` if the array is not numerical (i.e.,
if ``np.positive(array)`` raises a ``TypeError``. For ``ndarray``
subclasses that override the default ``__array_ufunc__`` implementation,
the ``TypeError`` is passed on.

``NDArrayOperatorsMixin`` now implements matrix multiplication
--------------------------------------------------------------
Previously, ``np.lib.mixins.NDArrayOperatorsMixin`` did not implement the
special methods for Python's matrix multiplication operator (``@``). This has
changed now that ``matmul`` is a ufunc and can be overridden using
``__array_ufunc__``.

The scaling of the covariance matrix in ``np.polyfit`` is different
-------------------------------------------------------------------
So far, ``np.polyfit`` used a non-standard factor in the scaling of the the
covariance matrix. Namely, rather than using the standard ``chisq/(M-N)``, it
scaled it with ``chisq/(M-N-2)`` where M is the number of data points and N is the
number of parameters.  This scaling is inconsistent with other fitting programs
such as e.g. ``scipy.optimize.curve_fit`` and was changed to ``chisq/(M-N)``.

``maximum`` and ``minimum`` no longer emit warnings
---------------------------------------------------
As part of code introduced in 1.10,  ``float32`` and ``float64`` set invalid
float status when a Nan is encountered in `numpy.maximum` and `numpy.minimum`,
when using SSE2 semantics. This caused a `RuntimeWarning` to sometimes be
emitted. In 1.15 we fixed the inconsistencies which caused the warnings to
become more conspicuous. Now no warnings will be emitted.

Umath and multiarray c-extension modules merged into a single module
--------------------------------------------------------------------
The two modules were merged, according to `NEP 15`_. Previously `np.core.umath`
and `np.core.multiarray` were seperate c-extension modules. They are now python
wrappers to the single `np.core/_multiarray_math` c-extension module.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html

``getfield`` validity checks extended
-------------------------------------
`numpy.ndarray.getfield` now checks the dtype and offset arguments to prevent
accessing invalid memory locations.

NumPy functions now support overrides with ``__array_function__``
-----------------------------------------------------------------
It is now possible to override the implementation of almost all NumPy functions
on non-NumPy arrays by defining a ``__array_function__`` method, as described
in `NEP 18`_. The sole exception are functions for explicitly casting to NumPy
arrays such as ``np.array``. As noted in the NEP, this feature remains
experimental and the details of how to implement such overrides may change in
the future.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html
.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

Arrays based off readonly buffers cannot be set ``writeable``
-------------------------------------------------------------
We now disallow setting the ``writeable`` flag True on arrays created
from ``fromstring(readonly-buffer)``.

Checksums
=========

MD5
---

    ab8191598ce94a21ad921e28c9271d25  numpy-1.16.0rc2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    7ee0fc316d2880ec0b1e759e1c07b3d1  numpy-1.16.0rc2-cp27-cp27m-manylinux1_i686.whl
    e5cebb3ae393456320ddfa0253cdc95d  numpy-1.16.0rc2-cp27-cp27m-manylinux1_x86_64.whl
    064af8e0490c2d28cd643100697a39df  numpy-1.16.0rc2-cp27-cp27m-win32.whl
    a0863b121b467d305eb1d2064ef51512  numpy-1.16.0rc2-cp27-cp27m-win_amd64.whl
    a87ec16f1a05effdd1ba28bdc3c7061f  numpy-1.16.0rc2-cp27-cp27mu-manylinux1_i686.whl
    f6cfdf218925e1e28e7d3fdafe92a5b2  numpy-1.16.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
    95cecd379d9810a9380e6828d0f08406  numpy-1.16.0rc2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    6db11880170de68b69d297cf7cbbef9f  numpy-1.16.0rc2-cp35-cp35m-manylinux1_i686.whl
    33b4c48e61328b1f00f5a6b6c2e3cdee  numpy-1.16.0rc2-cp35-cp35m-manylinux1_x86_64.whl
    d69ffcdac09f1b5ab7fa90b9b5be784a  numpy-1.16.0rc2-cp35-cp35m-win32.whl
    10ed348dd993c333236471235c1104fa  numpy-1.16.0rc2-cp35-cp35m-win_amd64.whl
    831fab17f94d61b7c8a210c5924a1016  numpy-1.16.0rc2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    1a694634c2343513419c2c6fb26e32e7  numpy-1.16.0rc2-cp36-cp36m-manylinux1_i686.whl
    14c493bd03f43402d4eee9f35163ea9e  numpy-1.16.0rc2-cp36-cp36m-manylinux1_x86_64.whl
    c60c44b5d088450abd2ce87742355b83  numpy-1.16.0rc2-cp36-cp36m-win32.whl
    ddfbf5509840ac28fbcff7082dede343  numpy-1.16.0rc2-cp36-cp36m-win_amd64.whl
    70cd6e4609d16e425d00f3f54863257e  numpy-1.16.0rc2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    a4dca83e6d5f55493795b6ebde455a27  numpy-1.16.0rc2-cp37-cp37m-manylinux1_i686.whl
    6e5c2094cb896f7ee55dcfbea80aba5a  numpy-1.16.0rc2-cp37-cp37m-manylinux1_x86_64.whl
    e19330756e42a4d77b58c5c34fa58f4a  numpy-1.16.0rc2-cp37-cp37m-win32.whl
    4b7ed9b7be41ce44e146af1d6bc0a4c4  numpy-1.16.0rc2-cp37-cp37m-win_amd64.whl
    4f06b36a9db7d61898bf0440ffb6b273  numpy-1.16.0rc2.tar.gz
    feb1ad51ad96a2b1f964f64bb34a671b  numpy-1.16.0rc2.zip

SHA256
------

    9c60e0261aa35ebc671a9dd8e149bb03cdc5f928188c8f13249304ad94e01bfc  numpy-1.16.0rc2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    2bd4ee471f85b315a8177826126660043a1529ff9d022d958182fa274268f86c  numpy-1.16.0rc2-cp27-cp27m-manylinux1_i686.whl
    d82bcdab867ba5c3fb6a68c3970a7a01f556d8ab4466fdec78394a74be2f71c6  numpy-1.16.0rc2-cp27-cp27m-manylinux1_x86_64.whl
    2811b3e77d455c657f1d46c3d1e7f274e645cb3af44008b7dc02f6ca7cc1a106  numpy-1.16.0rc2-cp27-cp27m-win32.whl
    2d6e8376b9a12ff55e63aa805315c032a9669699a312badf36b1824258561f08  numpy-1.16.0rc2-cp27-cp27m-win_amd64.whl
    d164db66a4519186ec13f2917bd2fd229021e3f3a8c78a2eb34de2b3178e5329  numpy-1.16.0rc2-cp27-cp27mu-manylinux1_i686.whl
    d4e305d720c5e7c247410d794da816998aab53103bf0b05bc94090a65537b89a  numpy-1.16.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
    cc140dd5077f2d9051af585648d3b561bbb6fb48da6458424e8ec462aebd2ee2  numpy-1.16.0rc2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    0ad442c958da72443d3f35d29833aefad332f53601db19a24613f06a9731f131  numpy-1.16.0rc2-cp35-cp35m-manylinux1_i686.whl
    e05413b244108e41615697e26bdac211ca809054c027ccf59a96388b85ac2b00  numpy-1.16.0rc2-cp35-cp35m-manylinux1_x86_64.whl
    e75318498c0c5d5dc09f151bdadb8c8ac5762a236be328e33bbc0d079b349e7c  numpy-1.16.0rc2-cp35-cp35m-win32.whl
    c4a023555dae1f0a1e411b67d1970cd168eff9526c0d11db47cb94d7b22948ec  numpy-1.16.0rc2-cp35-cp35m-win_amd64.whl
    c064e12ebbc467baa2c3b0690b9296203d51c491546f1d13f796dc46c0dd4447  numpy-1.16.0rc2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    2b716b4084770af3055352377603a9eef3f6b557bb9ec621b1c96a18242ac6f9  numpy-1.16.0rc2-cp36-cp36m-manylinux1_i686.whl
    a0e1a7b003c8a2cd204d9e7530677f7b41afa90460d1cc1bb9f52cf559abe0ab  numpy-1.16.0rc2-cp36-cp36m-manylinux1_x86_64.whl
    4037b8b94345c2803474171464b366cd6727e310673a070083c79cd3a880ae71  numpy-1.16.0rc2-cp36-cp36m-win32.whl
    96a0bb7951739868bffc4a2d4c27a7452c44a276f743140be8b48439bf8714a7  numpy-1.16.0rc2-cp36-cp36m-win_amd64.whl
    62686057967dfbc391aa8a0d9eeded12250636a06bd6b639e07d067bce1282b5  numpy-1.16.0rc2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    eef36d084b7f91256b5ce95665abfe24693622fcecd3af3cc4f96624c0d93981  numpy-1.16.0rc2-cp37-cp37m-manylinux1_i686.whl
    5d6cc7098b7911401a9350d51d009bfe359a6d272e191827a9c13ebc03fc2974  numpy-1.16.0rc2-cp37-cp37m-manylinux1_x86_64.whl
    9c168f97f9af48b78ababc79c74db7ce09219ac70e01dbd92683e0731f952a08  numpy-1.16.0rc2-cp37-cp37m-win32.whl
    43d2e7c25970570d8d0a9d85d4b6c4635a6b402e823c87c10fc37657621c2d9b  numpy-1.16.0rc2-cp37-cp37m-win_amd64.whl
    f3863bdc042c30a176694a8e2a16c13f8e6894a349ba79e3fbbcfe7e895436b9  numpy-1.16.0rc2.tar.gz
    c264fbc5f17897e124368289f53980a04880d6ebdfd8b657884ff31154d23133  numpy-1.16.0rc2.zip
numpy -

Published by charris almost 6 years ago

==========================
NumPy 1.16.0 Release Notes

This NumPy release is the last one to support Python 2.7 and will be maintained
as a long term release with bug fixes until 2020. Support for Python 3.4 been
dropped, the supported Python versions are 2.7 and 3.5-3.7. The wheels on PyPI
are linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.

Downstream developers building this release should use Cython >= 0.29 and, if
using OpenBLAS, OpenBLAS > v0.3.4.

This release has seen a lot of refactoring and features many bug fixes, improved
code organization, and better cross platform compatibility. Not all of these
improvements will be visible to users, but they should help make maintenance
easier going forward.

Highlights

  • Experimental support for overriding numpy functions,
    see __array_function__ below.

  • The matmul function is now a ufunc. This provides better
    performance and allows overriding with __array_ufunc__.

  • Improved support for the ARM and POWER architectures.

  • Improved support for AIX and PyPy.

  • Improved interop with ctypes.

  • Improved support for PEP 3118.

New functions

  • New functions added to the numpy.lib.recfuntions module to ease the
    structured assignment changes:

    • assign_fields_by_name
    • structured_to_unstructured
    • unstructured_to_structured
    • apply_along_fields
    • require_fields

    See the user guide at https://docs.scipy.org/doc/numpy/user/basics.rec.html
    for more info.

New deprecations

  • The type dictionaries numpy.core.typeNA and numpy.core.sctypeNA are
    deprecated. They were buggy and not documented and will be removed in the
    1.18 release. Usenumpy.sctypeDict instead.

  • The numpy.asscalar function is deprecated. It is an alias to the more
    powerful numpy.ndarray.item, not tested, and fails for scalars.

  • The numpy.set_array_ops and numpy.get_array_ops functions are deprecated.
    As part of NEP 15, they have been deprecated along with the C-API functions
    :c:func:PyArray_SetNumericOps and :c:func:PyArray_GetNumericOps. Users
    who wish to override the inner loop functions in built-in ufuncs should use
    :c:func:PyUFunc_ReplaceLoopBySignature.

  • The numpy.unravel_index keyword argument dims is deprecated, use
    shape instead.

  • The numpy.histogram normed argument is deprecated. It was deprecated
    previously, but no warning was issued.

  • The positive operator (+) applied to non-numerical arrays is
    deprecated. See below for details.

  • Passing an iterator to the stack functions is deprecated

Expired deprecations

  • NaT comparisons now return False without a warning, finishing a
    deprecation cycle begun in NumPy 1.11.

  • np.lib.function_base.unique was removed, finishing a deprecation cycle
    begun in NumPy 1.4. Use numpy.unique instead.

  • multi-field indexing now returns views instead of copies, finishing a
    deprecation cycle begun in NumPy 1.7. The change was previously attempted in
    NumPy 1.14 but reverted until now.

  • np.PackageLoader and np.pkgload have been removed. These were
    deprecated in 1.10, had no tests, and seem to no longer work in 1.15.

Future changes

  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

f2py script on Windows

On Windows, the installed script for running f2py is now an .exe file
rather than a *.py file and should be run from the command line as f2py
whenever the Scripts directory is in the path. Running f2py as a module
python -m numpy.f2py [...] will work without path modification in any
version of NumPy.

NaT comparisons

Consistent with the behavior of NaN, all comparisons other than inequality
checks with datetime64 or timedelta64 NaT ("not-a-time") values now always
return False, and inequality checks with NaT now always return True.
This includes comparisons beteween NaT values. For compatibility with the
old behavior, use np.isnat to explicitly check for NaT or convert
datetime64/timedelta64 arrays with .astype(np.int64) before making
comparisons.

complex64/128 alignment has changed

The memory alignment of complex types is now the same as a C-struct composed of
two floating point values, while before it was equal to the size of the type.
For many users (for instance on x64/unix/gcc) this means that complex64 is now
4-byte aligned instead of 8-byte aligned. An important consequence is that
aligned structured dtypes may now have a different size. For instance,
np.dtype('c8,u1', align=True) used to have an itemsize of 16 (on x64/gcc)
but now it is 12.

More in detail, the complex64 type now has the same alignment as a C-struct
struct {float r, i;}, according to the compiler used to compile numpy, and
similarly for the complex128 and complex256 types.

nd_grid len removal

len(np.mgrid) and len(np.ogrid) are now considered nonsensical
and raise a TypeError.

np.unravel_index now accepts shape keyword argument

Previously, only the dims keyword argument was accepted
for specification of the shape of the array to be used
for unraveling. dims remains supported, but is now deprecated.

multi-field views return a view instead of a copy

Indexing a structured array with multiple fields, e.g., arr[['f1', 'f3']],
returns a view into the original array instead of a copy. The returned view
will often have extra padding bytes corresponding to intervening fields in the
original array, unlike before, which will affect code such as
arr[['f1', 'f3']].view('float64'). This change has been planned since numpy
1.7. Operations hitting this path have emitted FutureWarnings since then.
Additional FutureWarnings about this change were added in 1.12.

To help users update their code to account for these changes, a number of
functions have been added to the numpy.lib.recfunctions module which
safely allow such operations. For instance, the code above can be replaced
with structured_to_unstructured(arr[['f1', 'f3']], dtype='float64').
See the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html#accessing-multiple-fields>__.

C API changes

The :c:data:NPY_API_VERSION was incremented to 0x0000D, due to the addition
of:

  • :c:member:PyUFuncObject.core_dim_flags
  • :c:member:PyUFuncObject.core_dim_sizes
  • :c:member:PyUFuncObject.identity_value
  • :c:function:PyUFunc_FromFuncAndDataAndSignatureAndIdentity

New Features

Integrated squared error (ISE) estimator added to histogram

This method (bins='stone') for optimizing the bin number is a
generalization of the Scott's rule. The Scott's rule assumes the distribution
is approximately Normal, while the ISE_ is a non-parametric method based on
cross-validation.

.. _ISE: https://en.wikipedia.org/wiki/Histogram#Minimizing_cross-validation_estimated_squared_error

max_rows keyword added for np.loadtxt

New keyword max_rows in numpy.loadtxt sets the maximum rows of the
content to be read after skiprows, as in numpy.genfromtxt.

modulus operator support added for np.timedelta64 operands

The modulus (remainder) operator is now supported for two operands
of type np.timedelta64. The operands may have different units
and the return value will match the type of the operands.

Improvements

no-copy pickling of numpy arrays

Up to protocol 4, numpy array pickling created 2 spurious copies of the data
being serialized. With pickle protocol 5, and the PickleBuffer API, a
large variety of numpy arrays can now be serialized without any copy using
out-of-band buffers, and with one less copy using in-band buffers. This
results, for large arrays, in an up to 66% drop in peak memory usage.

build shell independence

NumPy builds should no longer interact with the host machine
shell directly. exec_command has been replaced with
subprocess.check_output where appropriate.

np.polynomial.Polynomial classes render in LaTeX in Jupyter notebooks

When used in a front-end that supports it, Polynomial instances are now
rendered through LaTeX. The current format is experimental, and is subject to
change.

randint and choice now work on empty distributions

Even when no elements needed to be drawn, np.random.randint and
np.random.choice raised an error when the arguments described an empty
distribution. This has been fixed so that e.g.
np.random.choice([], 0) == np.array([], dtype=float64).

linalg.lstsq, linalg.qr, and linalg.svd now work with empty arrays

Previously, a LinAlgError would be raised when an empty matrix/empty
matrices (with zero rows and/or columns) is/are passed in. Now outputs of
appropriate shapes are returned.

Chain exceptions to give better error messages for invalid PEP3118 format strings

This should help track down problems.

Einsum optimization path updates and efficiency improvements

Einsum was synchronized with the current upstream work.

numpy.angle and numpy.expand_dims now work on ndarray subclasses

In particular, they now work for masked arrays.

NPY_NO_DEPRECATED_API compiler warning suppression

Setting NPY_NO_DEPRECATED_API to a value of 0 will suppress the current compiler
warnings when the deprecated numpy API is used.

np.diff Added kwargs prepend and append

New kwargs prepend and append, allow for values to be inserted on
either end of the differences. Similar to options for ediff1d. Now the
inverse of cumsum can be obtained easily via prepend=0.

ARM support updated

Support for ARM CPUs has been updated to accommodate 32 and 64 bit targets,
and also big and little endian byte ordering. AARCH32 memory alignment issues
have been addressed. CI testing has been expanded to include AARCH64 targets
via the services of shippable.com.

Appending to build flags

numpy.distutils has always overridden rather than appended to LDFLAGS and
other similar such environment variables for compiling Fortran extensions.
Now, if the NPY_DISTUTILS_APPEND_FLAGS environment variable is set to 1, the
behavior will be appending. This applied to: LDFLAGS, F77FLAGS,
F90FLAGS, FREEFLAGS, FOPT, FDEBUG, and FFLAGS. See gh-11525 for more
details.

Generalized ufunc signatures now allow fixed-size dimensions

By using a numerical value in the signature of a generalized ufunc, one can
indicate that the given function requires input or output to have dimensions
with the given size. E.g., the signature of a function that converts a polar
angle to a two-dimensional cartesian unit vector would be ()->(2); that
for one that converts two spherical angles to a three-dimensional unit vector
would be (),()->(3); and that for the cross product of two
three-dimensional vectors would be (3),(3)->(3).

Note that to the elementary function these dimensions are not treated any
differently from variable ones indicated with a name starting with a letter;
the loop still is passed the corresponding size, but it can now count on that
size being equal to the fixed one given in the signature.

Generalized ufunc signatures now allow flexible dimensions

Some functions, in particular numpy's implementation of @ as matmul,
are very similar to generalized ufuncs in that they operate over core
dimensions, but one could not present them as such because they were able to
deal with inputs in which a dimension is missing. To support this, it is now
allowed to postfix a dimension name with a question mark to indicate that the
dimension does not necessarily have to be present.

With this addition, the signature for matmul can be expressed as
(m?,n),(n,p?)->(m?,p?). This indicates that if, e.g., the second operand
has only one dimension, for the purposes of the elementary function it will be
treated as if that input has core shape (n, 1), and the output has the
corresponding core shape of (m, 1). The actual output array, however, has
the flexible dimension removed, i.e., it will have shape (..., m).
Similarly, if both arguments have only a single dimension, the inputs will be
presented as having shapes (1, n) and (n, 1) to the elementary
function, and the output as (1, 1), while the actual output array returned
will have shape (). In this way, the signature allows one to use a
single elementary function for four related but different signatures,
(m,n),(n,p)->(m,p), (n),(n,p)->(p), (m,n),(n)->(m) and
(n),(n)->().

np.clip and the clip method check for memory overlap

The out argument to these functions is now always tested for memory overlap
to avoid corrupted results when memory overlap occurs.

New value unscaled for option cov in ``np.polyfit''

A further possible value has been added to the cov parameter of the
np.polyfit function. With cov='unscaled' the scaling of the covariance
matrix is disabled completely (similar to setting absolute_sigma=True'' in scipy.optimize.curve_fit``). This would be useful in occasions, where the
weights are given by 1/sigma with sigma being the (known) standard errors of
(Gaussian distributed) data points, in which case the unscaled matrix is
already a correct estimate for the covariance matrix.

Detailed docstrings for scalar numeric types

The help function, when applied to numeric types such as numpy.intc,
numpy.int_, and numpy.longlong, now lists all of the aliased names for that
type, distinguishing between platform -dependent and -independent aliases.

__module__ attribute now points to public modules

The __module__ attribute on most NumPy functions has been updated to refer
to the preferred public module from which to access a function, rather than
the module in which the function happens to be defined. This produces more
informative displays for functions in tools such as IPython, e.g., instead of
<function 'numpy.core.fromnumeric.sum'> you now see
<function 'numpy.sum'>.

Large allocations marked as suitable for transparent hugepages

On systems that support transparent hugepages over the madvise system call
numpy now marks that large memory allocations can be backed by hugepages which
reduces page fault overhead and can in some fault heavy cases improve
performance significantly. On Linux the setting for huge pages to be used,
/sys/kernel/mm/transparent_hugepage/enabled, must be at least madvise.
Systems which already have it set to always will not see much difference as
the kernel will automatically use huge pages where appropriate.

Users of very old Linux kernels (~3.x and older) should make sure that
/sys/kernel/mm/transparent_hugepage/defrag is not set to always to avoid
performance problems due concurrency issues in the memory defragmentation.

Alpine Linux (and other musl c library distros) support

We now default to use fenv.h for floating point status error reporting.
Previously we had a broken default that sometimes would not report underflow,
overflow, and invalid floating point operations. Now we can support non-glibc
distrubutions like Alpine Linux as long as they ship fenv.h.

Speedup np.block for large arrays

Large arrays (greater than 512 * 512) now use a blocking algorithm based on
copying the data directly into the appropriate slice of the resulting array.
This results in significant speedups for these large arrays, particularly for
arrays being blocked along more than 2 dimensions.

arr.ctypes.data_as(...) holds a reference to arr

Previously the caller was responsible for keeping the array alive for the
lifetime of the pointer.

Speedup ``np.take`` for read-only arrays
----------------------------------------
The implementation of ``np.take`` no longer makes an unnecessary copy of the
source array when its ``writeable`` flag is set to ``False``.

Support path-like objects for more functions
--------------------------------------------
The ``np.core.records.fromfile`` function now supports ``pathlib.Path``
and other path-like objects in addition to a file object. Furthermore, the
``np.load`` function now also supports path-like objects when using memory
mapping (``mmap_mode`` keyword argument).

Better behaviour of ufunc identities during reductions
------------------------------------------------------
Universal functions have an ``.identity`` which is used when ``.reduce`` is
called on an empty axis.

As of this release, the logical binary ufuncs, `logical_and`, `logical_or`,
and `logical_xor`, now have ``identity`` s of type `bool`, where previously they
were of type `int`. This restores the 1.14 behavior of getting ``bool`` s when
reducing empty object arrays with these ufuncs, while also keeping the 1.15
behavior of getting ``int`` s when reducing empty object arrays with arithmetic
ufuncs like ``add`` and ``multiply``.

Additionally, `logaddexp` now has an identity of ``-inf``, allowing it to be
called on empty sequences, where previously it could not be.

This is possible thanks to the new
:c:function:`PyUFunc_FromFuncAndDataAndSignatureAndIdentity`, which allows
arbitrary values to be used as identities now.

Improved conversion from ctypes objects
---------------------------------------
Numpy has always supported taking a value or type from ``ctypes`` and
converting it into an array or dtype, but only behaved correctly for simpler
types. As of this release, this caveat is lifted - now:

* The ``_pack_`` attribute of ``ctypes.Structure``, used to emulate C's
  ``__attribute__((packed))``, is respected.
* Endianness of all ctypes objects is preserved
* ``ctypes.Union`` is supported
* Non-representable constructs raise exceptions, rather than producing
  dangerously incorrect results:

  * Bitfields are no longer interpreted as sub-arrays
  * Pointers are no longer replaced with the type that they point to

A new ``ndpointer.contents`` member
-----------------------------------
This matches the ``.contents`` member of normal ctypes arrays, and can be used
to construct an ``np.array`` around the pointers contents.  This replaces
``np.array(some_nd_pointer)``, which stopped working in 1.15.  As a side effect
of this change, ``ndpointer`` now supports dtypes with overlapping fields and
padding.

``matmul`` is now a ``ufunc``
-----------------------------
`numpy.matmul` is now a ufunc which means that both the function and the
``__matmul__`` operator can now be overridden by ``__array_ufunc__``. Its
implementation has also changed. It uses the same BLAS routines as
`numpy.dot`, ensuring its performance is similar for large matrices.

Start and stop arrays for ``linspace``, ``logspace`` and ``geomspace``
----------------------------------------------------------------------
These functions used to be limited to scalar stop and start values, but can
now take arrays, which will be properly broadcast and result in an output
which has one axis prepended.  This can be used, e.g., to obtain linearly
interpolated points between sets of points.

CI extended with additional services
------------------------------------
We now use additional free CI services, thanks to the companies that provide:

* Codecoverage testing via codecov.io
* Arm testing via shippable.com
* Additional test runs on azure pipelines

These are in addition to our continued use of travis, appveyor (for wheels) and
LGTM


Changes
=======

Comparison ufuncs will now error rather than return NotImplemented
------------------------------------------------------------------
Previously, comparison ufuncs such as ``np.equal`` would return
`NotImplemented` if their arguments had structured dtypes, to help comparison
operators such as ``__eq__`` deal with those.  This is no longer needed, as the
relevant logic has moved to the comparison operators proper (which thus do
continue to return `NotImplemented` as needed). Hence, like all other ufuncs,
the comparison ufuncs will now error on structured dtypes.

Positive will now raise a deprecation warning for non-numerical arrays
----------------------------------------------------------------------
Previously, ``+array`` unconditionally returned a copy. Now, it will
raise a ``DeprecationWarning`` if the array is not numerical (i.e.,
if ``np.positive(array)`` raises a ``TypeError``. For ``ndarray``
subclasses that override the default ``__array_ufunc__`` implementation,
the ``TypeError`` is passed on.

``NDArrayOperatorsMixin`` now implements matrix multiplication
--------------------------------------------------------------
Previously, ``np.lib.mixins.NDArrayOperatorsMixin`` did not implement the
special methods for Python's matrix multiplication operator (``@``). This has
changed now that ``matmul`` is a ufunc and can be overridden using
``__array_ufunc__``.

The scaling of the covariance matrix in ``np.polyfit`` is different
-------------------------------------------------------------------
So far, ``np.polyfit`` used a non-standard factor in the scaling of the the
covariance matrix. Namely, rather than using the standard ``chisq/(M-N)``, it
scaled it with ``chisq/(M-N-2)`` where M is the number of data points and N is the
number of parameters.  This scaling is inconsistent with other fitting programs
such as e.g. ``scipy.optimize.curve_fit`` and was changed to ``chisq/(M-N)``.

``maximum`` and ``minimum`` no longer emit warnings
---------------------------------------------------
As part of code introduced in 1.10,  ``float32`` and ``float64`` set invalid
float status when a Nan is encountered in `numpy.maximum` and `numpy.minimum`,
when using SSE2 semantics. This caused a `RuntimeWarning` to sometimes be
emitted. In 1.15 we fixed the inconsistencies which caused the warnings to
become more conspicuous. Now no warnings will be emitted.

Umath and multiarray c-extension modules merged into a single module
--------------------------------------------------------------------
The two modules were merged, according to `NEP 15`_. Previously `np.core.umath`
and `np.core.multiarray` were seperate c-extension modules. They are now python
wrappers to the single `np.core/_multiarray_math` c-extension module.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html

``getfield`` validity checks extended
-------------------------------------
`numpy.ndarray.getfield` now checks the dtype and offset arguments to prevent
accessing invalid memory locations.

NumPy functions now support overrides with ``__array_function__``
-----------------------------------------------------------------
It is now possible to override the implementation of almost all NumPy functions
on non-NumPy arrays by defining a ``__array_function__`` method, as described
in `NEP 18`_. The sole exception are functions for explicitly casting to NumPy
arrays such as ``np.array``. As noted in the NEP, this feature remains
experimental and the details of how to implement such overrides may change in
the future.

.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html
.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

Arrays based off readonly buffers cannot be set ``writeable``
-------------------------------------------------------------
We now disallow setting the ``writeable`` flag True on arrays created
from ``fromstring(readonly-buffer)``.

Checksums
=========

MD5
---

    4cfd167c553c15cbffacad828e37fa1b  numpy-1.16.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    fc7acd76d8f2f5b69af7b14435ff6e5f  numpy-1.16.0rc1-cp27-cp27m-manylinux1_i686.whl
    d3d05c0ade6bd5ed26c0d2f045cc2545  numpy-1.16.0rc1-cp27-cp27m-manylinux1_x86_64.whl
    78acdc2844f3711e670b5b0d6112fd46  numpy-1.16.0rc1-cp27-cp27m-win32.whl
    e24b99a1b2584e5c89a8bb25b755a229  numpy-1.16.0rc1-cp27-cp27m-win_amd64.whl
    28df62b2e4162a0be66a65b0405d2974  numpy-1.16.0rc1-cp27-cp27mu-manylinux1_i686.whl
    443d09ffded8b4f52d4158e7e53d5e02  numpy-1.16.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
    4709d3b87b56e8d706baf998a746baa0  numpy-1.16.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    e3895e61d89db8219e01e263f342c91b  numpy-1.16.0rc1-cp35-cp35m-manylinux1_i686.whl
    b0e7842ece6d07568341ec8c4e850466  numpy-1.16.0rc1-cp35-cp35m-manylinux1_x86_64.whl
    4f5de37348d5ab67661277a713e26317  numpy-1.16.0rc1-cp35-cp35m-win32.whl
    a629f86585a6a7f22afdcc953df543b5  numpy-1.16.0rc1-cp35-cp35m-win_amd64.whl
    69860375de9a74698322e9608d039e24  numpy-1.16.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    d75b3ec49d27915ea9ee0866a45b1606  numpy-1.16.0rc1-cp36-cp36m-manylinux1_i686.whl
    b103bc43115f9c5760e0f86de7191682  numpy-1.16.0rc1-cp36-cp36m-manylinux1_x86_64.whl
    b3c6cbd582b502b6069b9a85a4b52d3f  numpy-1.16.0rc1-cp36-cp36m-win32.whl
    efde86e04767a20af7d7b671aa43a74e  numpy-1.16.0rc1-cp36-cp36m-win_amd64.whl
    0da1b6b0fddea9eebcc6d06c161b109d  numpy-1.16.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    439fefdac5de6e80c0213aa5dd3aed83  numpy-1.16.0rc1-cp37-cp37m-manylinux1_i686.whl
    a238bdbdaece30f8bdd68cb17b8fc0f3  numpy-1.16.0rc1-cp37-cp37m-manylinux1_x86_64.whl
    f27e4791cc0696451572350a64fc3509  numpy-1.16.0rc1-cp37-cp37m-win32.whl
    b90d6fefb38650b5a343171dfabe1e38  numpy-1.16.0rc1-cp37-cp37m-win_amd64.whl
    acfd5138cd9ba5a0ee434c112866e1d1  numpy-1.16.0rc1.tar.gz
    f9a9356b066174b1375d509d7fdf03a6  numpy-1.16.0rc1.zip

SHA256
------

    1d94a5649fb8412784d9edda539b266801ee87fc89b812ebf5ec0fdab96444a3  numpy-1.16.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    f901fa2232562abf9250e4a86d2b50f008b2fe0f9d91bc1ca6a3ffd17c81d2a4  numpy-1.16.0rc1-cp27-cp27m-manylinux1_i686.whl
    4c725b6557eb043b963a8b4b5da560fec4500b5e2a9c4794adb408de838aeb94  numpy-1.16.0rc1-cp27-cp27m-manylinux1_x86_64.whl
    867ed40b1bebb50f8b060a1b2a76c227a436a7d9fc73bf873dbc8e79862a56af  numpy-1.16.0rc1-cp27-cp27m-win32.whl
    70279fa434b878692c15bdb9b3376765ff63a91d5f1f6e5973eb34b0bddd7aa5  numpy-1.16.0rc1-cp27-cp27m-win_amd64.whl
    c5db80fc344977d3df5435ded1a8ce05719283aeacaaf60a818a4baf63c756e4  numpy-1.16.0rc1-cp27-cp27mu-manylinux1_i686.whl
    026a3b7c46e01a736bdf27853ce2a4f56a4feb3147ff879dbd463ed4da0a511b  numpy-1.16.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
    2a17337e1980e753d4bac3dd4859bc1300e995ddf05fc09828b8d60d932ce4d3  numpy-1.16.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    0efbe5f61044e7b0ed5583380aca26995c10cd625266f09b2d6ccef243499f2e  numpy-1.16.0rc1-cp35-cp35m-manylinux1_i686.whl
    60dd924257899a44d55a7e548aba2a41c12e5d963b900ec138e0b15f3e6f3ef5  numpy-1.16.0rc1-cp35-cp35m-manylinux1_x86_64.whl
    078efe4fc53079acb4a70f378a1fbf97f22a1f864321788ae1fd9ca4c952bb10  numpy-1.16.0rc1-cp35-cp35m-win32.whl
    3dd416deba0e6b734e653961354ac2bee2888c832835304853b14299a8c3169a  numpy-1.16.0rc1-cp35-cp35m-win_amd64.whl
    ff9859fffc4a03b196d742fe683684921e3d3819aa97d935b92d573b7ff0bf7b  numpy-1.16.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    ad0a948011cafe20323944aea7570cea77c3659cf970ee4e94993a75fdf1bf3a  numpy-1.16.0rc1-cp36-cp36m-manylinux1_i686.whl
    b53714c56ee9a1f1b46f7558ca1aa005704dba35334ff61288390be01b96b3b0  numpy-1.16.0rc1-cp36-cp36m-manylinux1_x86_64.whl
    e299aaed551f16c3822e261adc6d5685ad7067536ae6af00e53837b637dc1270  numpy-1.16.0rc1-cp36-cp36m-win32.whl
    9c76c0f114b729606081b0e4c49d2f7887946004872576f51b8bd50461f4110b  numpy-1.16.0rc1-cp36-cp36m-win_amd64.whl
    bcf57e4694e32d7ebb9402cd3fcd9c4fd913a29f372fbefc8edd675a32262558  numpy-1.16.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
    c953969e4b9a65998be1d7e895613be77bd42d438b54f9ce8c2453616ca8f5c9  numpy-1.16.0rc1-cp37-cp37m-manylinux1_i686.whl
    09d327e93f2b13dfbfd6a7c2534441478896a24e9521f59f1ec64c775eff0066  numpy-1.16.0rc1-cp37-cp37m-manylinux1_x86_64.whl
    ff73c826d81442f00b38360e52618d94f811c8db9047546d135c0e56117f3812  numpy-1.16.0rc1-cp37-cp37m-win32.whl
    f735dad0d72598ca0e19f50a0891e83e496288038628addd86c05650fab49181  numpy-1.16.0rc1-cp37-cp37m-win_amd64.whl
    90aa92d9c1bf0cbde34c0eb3964b87d15f2a6de01da99af18615925e3b7d8a05  numpy-1.16.0rc1.tar.gz
    6e638a8d56af542aebf625efdacdfb555943c08044795ee7550789407f5b905c  numpy-1.16.0rc1.zip
numpy -

Published by charris almost 6 years ago

==========================
NumPy 1.15.4 Release Notes

This is a bugfix release for bugs and regressions reported following the 1.15.3
release. The Python versions supported by this release are 2.7, 3.4-3.7. The
wheels are linked with OpenBLAS v0.3.0, which should fix some of the linalg
problems reported for NumPy 1.14.

Compatibility Note

The NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit
binaries. That will also be the case in future releases. See
#11625 <https://github.com/numpy/numpy/issues/11625>__ for the related
discussion. Those needing 32-bit support should look elsewhere or build
from source.

Contributors

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

  • Charles Harris
  • Matti Picus
  • Sebastian Berg
  • bbbbbbbbba +

Pull requests merged

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

  • #12296: BUG: Dealloc cached buffer info
  • #12297: BUG: Fix fill value in masked array '==' and '!=' ops.
  • #12307: DOC: Correct the default value of optimize in numpy.einsum
  • #12320: REL: Prepare for the NumPy 1.15.4 release

Checksums

MD5

277c501cfcc67767d73d83a53ba69ecb  numpy-1.15.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
4c687d8cd7833e0b549d4a20905f29a2  numpy-1.15.4-cp27-cp27m-manylinux1_i686.whl
988d0b321d0b7576b105528fc948ddc3  numpy-1.15.4-cp27-cp27m-manylinux1_x86_64.whl
ea6bd39d05539847a0ebb12ff955251a  numpy-1.15.4-cp27-cp27mu-manylinux1_i686.whl
8ef2d1ea4571cdd0e7e8dfd5128436b4  numpy-1.15.4-cp27-cp27mu-manylinux1_x86_64.whl
b550d4cc012623a0c38f1392e08f4805  numpy-1.15.4-cp27-none-win32.whl
cb38e4778d9db33199dc7bb6a69ce089  numpy-1.15.4-cp27-none-win_amd64.whl
fa0acf5b2f852454346df5486a4ff4d9  numpy-1.15.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a7614f6318899aa1bfbc337232c4647f  numpy-1.15.4-cp34-cp34m-manylinux1_i686.whl
ae16e02274996ff926a30f23f6d6d7e8  numpy-1.15.4-cp34-cp34m-manylinux1_x86_64.whl
c1e1f381de7abc96509d4c5463903755  numpy-1.15.4-cp34-none-win32.whl
c269c8f2fce6cefdffe5e3821fc04fb5  numpy-1.15.4-cp34-none-win_amd64.whl
8906282c374b9b008c5c6401e5dc750b  numpy-1.15.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
537949e404ecc5814cb0db534bdfef36  numpy-1.15.4-cp35-cp35m-manylinux1_i686.whl
3b10a2fcf8610bbbfe08161e1d9d176e  numpy-1.15.4-cp35-cp35m-manylinux1_x86_64.whl
b67621a1c9b8dcac707ca22055629e9f  numpy-1.15.4-cp35-none-win32.whl
25b45b69d624cb07a8c05a5f82779b0a  numpy-1.15.4-cp35-none-win_amd64.whl
76ed46a4d4e9cdb7076bf1359d9df1d4  numpy-1.15.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b98cbad7770856dc12c827dca7c201b4  numpy-1.15.4-cp36-cp36m-manylinux1_i686.whl
6293fa6db83849aab3a8b1a606cf3d03  numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whl
21df485f92248c13cab3838762d717f6  numpy-1.15.4-cp36-none-win32.whl
c9cf7a267f8d2f57dc6384cc8b9f5acf  numpy-1.15.4-cp36-none-win_amd64.whl
1f6990e094c6b2bb47c6a528ac7b1263  numpy-1.15.4-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e79239cd9a3ce3cbfa5e7345bfb2ca56  numpy-1.15.4-cp37-cp37m-manylinux1_i686.whl
fc046ba978ef4dd0556af09643c57d30  numpy-1.15.4-cp37-cp37m-manylinux1_x86_64.whl
6291159933eb5a7f9c0bf28ae9707739  numpy-1.15.4-cp37-none-win32.whl
6097910d675f9e81d5d131b91a6c5c61  numpy-1.15.4-cp37-none-win_amd64.whl
b3626fec2f39ab01cad8bbb63a103742  numpy-1.15.4.tar.gz
219ac537d12cf06ed14f478662096ebc  numpy-1.15.4.zip

SHA256

18e84323cdb8de3325e741a7a8dd4a82db74fde363dce32b625324c7b32aa6d7  numpy-1.15.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
154c35f195fd3e1fad2569930ca51907057ae35e03938f89a8aedae91dd1b7c7  numpy-1.15.4-cp27-cp27m-manylinux1_i686.whl
4d8d3e5aa6087490912c14a3c10fbdd380b40b421c13920ff468163bc50e016f  numpy-1.15.4-cp27-cp27m-manylinux1_x86_64.whl
c857ae5dba375ea26a6228f98c195fec0898a0fd91bcf0e8a0cae6d9faf3eca7  numpy-1.15.4-cp27-cp27mu-manylinux1_i686.whl
0df89ca13c25eaa1621a3f09af4c8ba20da849692dcae184cb55e80952c453fb  numpy-1.15.4-cp27-cp27mu-manylinux1_x86_64.whl
36e36b6868e4440760d4b9b44587ea1dc1f06532858d10abba98e851e154ca70  numpy-1.15.4-cp27-none-win32.whl
99d59e0bcadac4aa3280616591fb7bcd560e2218f5e31d5223a2e12a1425d495  numpy-1.15.4-cp27-none-win_amd64.whl
edfa6fba9157e0e3be0f40168eb142511012683ac3dc82420bee4a3f3981b30e  numpy-1.15.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b261e0cb0d6faa8fd6863af26d30351fd2ffdb15b82e51e81e96b9e9e2e7ba16  numpy-1.15.4-cp34-cp34m-manylinux1_i686.whl
db9814ff0457b46f2e1d494c1efa4111ca089e08c8b983635ebffb9c1573361f  numpy-1.15.4-cp34-cp34m-manylinux1_x86_64.whl
df04f4bad8a359daa2ff74f8108ea051670cafbca533bb2636c58b16e962989e  numpy-1.15.4-cp34-none-win32.whl
7da99445fd890206bfcc7419f79871ba8e73d9d9e6b82fe09980bc5bb4efc35f  numpy-1.15.4-cp34-none-win_amd64.whl
56994e14b386b5c0a9b875a76d22d707b315fa037affc7819cda08b6d0489756  numpy-1.15.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ecf81720934a0e18526177e645cbd6a8a21bb0ddc887ff9738de07a1df5c6b61  numpy-1.15.4-cp35-cp35m-manylinux1_i686.whl
cf5bb4a7d53a71bb6a0144d31df784a973b36d8687d615ef6a7e9b1809917a9b  numpy-1.15.4-cp35-cp35m-manylinux1_x86_64.whl
561ef098c50f91fbac2cc9305b68c915e9eb915a74d9038ecf8af274d748f76f  numpy-1.15.4-cp35-none-win32.whl
4f41fd159fba1245e1958a99d349df49c616b133636e0cf668f169bce2aeac2d  numpy-1.15.4-cp35-none-win_amd64.whl
416a2070acf3a2b5d586f9a6507bb97e33574df5bd7508ea970bbf4fc563fa52  numpy-1.15.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
24fd645a5e5d224aa6e39d93e4a722fafa9160154f296fd5ef9580191c755053  numpy-1.15.4-cp36-cp36m-manylinux1_i686.whl
23557bdbca3ccbde3abaa12a6e82299bc92d2b9139011f8c16ca1bb8c75d1e95  numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whl
b1853df739b32fa913cc59ad9137caa9cc3d97ff871e2bbd89c2a2a1d4a69451  numpy-1.15.4-cp36-none-win32.whl
73a1f2a529604c50c262179fcca59c87a05ff4614fe8a15c186934d84d09d9a5  numpy-1.15.4-cp36-none-win_amd64.whl
1e8956c37fc138d65ded2d96ab3949bd49038cc6e8a4494b1515b0ba88c91565  numpy-1.15.4-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a4cc09489843c70b22e8373ca3dfa52b3fab778b57cf81462f1203b0852e95e3  numpy-1.15.4-cp37-cp37m-manylinux1_i686.whl
4a22dc3f5221a644dfe4a63bf990052cc674ef12a157b1056969079985c92816  numpy-1.15.4-cp37-cp37m-manylinux1_x86_64.whl
b1f44c335532c0581b77491b7715a871d0dd72e97487ac0f57337ccf3ab3469b  numpy-1.15.4-cp37-none-win32.whl
a61dc29cfca9831a03442a21d4b5fd77e3067beca4b5f81f1a89a04a71cf93fa  numpy-1.15.4-cp37-none-win_amd64.whl
766e09248298e3ad4ae4a805159f358610bbe7dcc7b4a14e5df2128c05655b80  numpy-1.15.4.tar.gz
3d734559db35aa3697dadcea492a423118c5c55d176da2f3be9c98d4803fc2a7  numpy-1.15.4.zip
numpy -

Published by charris almost 6 years ago

==========================
NumPy 1.15.3 Release Notes

This is a bugfix release for bugs and regressions reported following the 1.15.2
release. The Python versions supported by this release are 2.7, 3.4-3.7. The
wheels are linked with OpenBLAS v0.3.0, which should fix some of the linalg
problems reported for NumPy 1.14.

Compatibility Note

The NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit
binaries. That will also be the case in future releases. See
#11625 <https://github.com/numpy/numpy/issues/11625>__ for the related
discussion. Those needing 32-bit support should look elsewhere or build
from source.

Contributors

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

  • Allan Haldane
  • Charles Harris
  • Jeroen Demeyer
  • Kevin Sheppard
  • Matthew Bowden +
  • Matti Picus
  • Tyler Reddy

Pull requests merged

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

  • #12080: MAINT: Blacklist some MSVC complex functions.
  • #12083: TST: Add azure CI testing to 1.15.x branch.
  • #12084: BUG: test_path() now uses Path.resolve()
  • #12085: TST, MAINT: Fix some failing tests on azure-pipelines mac and...
  • #12187: BUG: Fix memory leak in mapping.c
  • #12188: BUG: Allow boolean subtract in histogram
  • #12189: BUG: Fix in-place permutation
  • #12190: BUG: limit default for get_num_build_jobs() to 8
  • #12191: BUG: OBJECT_to_* should check for errors
  • #12192: DOC: Prepare for NumPy 1.15.3 release.
  • #12237: BUG: Fix MaskedArray fill_value type conversion.
  • #12238: TST: Backport azure-pipeline testing fixes for Mac

Checksums

MD5

fc1ae8356a65804d02e5c7d9c1c07f65  numpy-1.15.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
85faf750ff68d76dad812eb6410cc417  numpy-1.15.3-cp27-cp27m-manylinux1_i686.whl
6d92d50f6235501475b642fc35212ad7  numpy-1.15.3-cp27-cp27m-manylinux1_x86_64.whl
f7430f4ca8d179a9e34072c0d1c1ca9c  numpy-1.15.3-cp27-cp27mu-manylinux1_i686.whl
ebd394af280ee41b55add821f84dc180  numpy-1.15.3-cp27-cp27mu-manylinux1_x86_64.whl
3bac2fd14dc19c20a0ced77bb8c395de  numpy-1.15.3-cp27-none-win32.whl
da69a44d0292379a261f1bf33b2afe3e  numpy-1.15.3-cp27-none-win_amd64.whl
c021f69eeed541202947d11c0ec3c2f4  numpy-1.15.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
4c2a4a7685c7431937aa0b5e6425b7de  numpy-1.15.3-cp34-cp34m-manylinux1_i686.whl
2eb4e845844b91853743bb4d4316e237  numpy-1.15.3-cp34-cp34m-manylinux1_x86_64.whl
47b03a3e34152c7e1ae7056f672674a5  numpy-1.15.3-cp34-none-win32.whl
64ebc4e0a722e5a6f1bd697309c3f951  numpy-1.15.3-cp34-none-win_amd64.whl
f7a9b021b45372fa39e009ae396d6108  numpy-1.15.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7a7578978757cb69507ab680a2f9b8f3  numpy-1.15.3-cp35-cp35m-manylinux1_i686.whl
52d5bd16e06561e735cb7f461370e697  numpy-1.15.3-cp35-cp35m-manylinux1_x86_64.whl
c1421e59a425b6cd1307a45612c4911f  numpy-1.15.3-cp35-none-win32.whl
2ea2c18feb7f92ebd6b64261265d1b7f  numpy-1.15.3-cp35-none-win_amd64.whl
ed7b1d79ad554f59c65b6c2d15924624  numpy-1.15.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
bece3ef7768bfa7b354b8d1014aa85b3  numpy-1.15.3-cp36-cp36m-manylinux1_i686.whl
4ed669d22449b6e1759b320ff9b37eb7  numpy-1.15.3-cp36-cp36m-manylinux1_x86_64.whl
a3c7ce17e1fdf009950f2f41adcde29b  numpy-1.15.3-cp36-none-win32.whl
890f23c488a00a2c64578bcb3737533e  numpy-1.15.3-cp36-none-win_amd64.whl
c3a332b97d53c60d8c129a1a8e062652  numpy-1.15.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
096f70a3a147a596a9317ce8ac9bf1bd  numpy-1.15.3-cp37-cp37m-manylinux1_i686.whl
2317122b49e79ffad91250a428ca54f9  numpy-1.15.3-cp37-cp37m-manylinux1_x86_64.whl
2719106f42758fd285bce25fa3c1a78e  numpy-1.15.3-cp37-none-win32.whl
9a692a2bbcbaabf98f19fbd9c0c5c163  numpy-1.15.3-cp37-none-win_amd64.whl
274dd6db3a13c6b6c47a05b5365e1749  numpy-1.15.3.tar.gz
7f1b9e521c2a662cecf3708026e8bdad  numpy-1.15.3.zip

SHA256

3c7959f750b54b445f14962a3ddc41b9eadbab00b86da55fbb1967b2b79aad10  numpy-1.15.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
9d1598573d310104acb90377f0a8c2319f737084689f5eb18012becaf345cda5  numpy-1.15.3-cp27-cp27m-manylinux1_i686.whl
a988db28f54e104a01e8573ceb6f28202b4c15635b1450b2e3b2b822c6564f9b  numpy-1.15.3-cp27-cp27m-manylinux1_x86_64.whl
3d8f9273c763a139a99e65c2a3c10f1109df30bedae7f011b10d95c538364704  numpy-1.15.3-cp27-cp27mu-manylinux1_i686.whl
919f65e0732195474897b1cafefb4d4e7c2bb8174a725e506b62e9096e4df28d  numpy-1.15.3-cp27-cp27mu-manylinux1_x86_64.whl
d263f8f14f2da0c079c0297e829e550d8f2c4e0ffef215506bd1d0ddd2bff3de  numpy-1.15.3-cp27-none-win32.whl
b12fe6f31babb9477aa0f9692730654b3ee0e71f33b4568170dfafd439caf0a2  numpy-1.15.3-cp27-none-win_amd64.whl
febd31cd0d2fd2509ca2ec53cb339f8bf593c1bd245b9fc55c1917a68532a0af  numpy-1.15.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d0f36a24cf8061a2c03e151be3418146717505b9b4ec17502fa3bbdb04ec1431  numpy-1.15.3-cp34-cp34m-manylinux1_i686.whl
63bca71691339d2d6f8a7c970821f2b12098a53afccc0190d4e1555e75e5223a  numpy-1.15.3-cp34-cp34m-manylinux1_x86_64.whl
b7599ff4acd23f5de983e3aec772153b1043e131487a5c6ad0f94b41a828877a  numpy-1.15.3-cp34-none-win32.whl
c9f4dafd6065c4c782be84cd67ceeb9b1d4380af60a7af32be10ebecd723385e  numpy-1.15.3-cp34-none-win_amd64.whl
32a07241cb624e104b88b08dea2851bf4ec5d65a1f599d7735041ced7171fd7a  numpy-1.15.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
8bc4b92a273659e44ca3f3a2f8786cfa39d8302223bcfe7df794429c63d5f5a1  numpy-1.15.3-cp35-cp35m-manylinux1_i686.whl
2f5ebc7a04885c7d69e5daa05208faef4db7f1ae6a99f4d36962df8cd54cdc76  numpy-1.15.3-cp35-cp35m-manylinux1_x86_64.whl
ce3622b73ccd844ba301c1aea65d36cf9d8331e7c25c16b1725d0f14db99aaf4  numpy-1.15.3-cp35-none-win32.whl
9fff90c88bfaad2901be50453d5cd7897a826c1d901f0654ee1d73ab3a48cd18  numpy-1.15.3-cp35-none-win_amd64.whl
032df9b6571c5f1d41ea6f6a189223208cb488990373aa686aca55570fcccb42  numpy-1.15.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
866a7c8774ccc7d603667fad95456b4cf56d79a2bb5a7648ac9f0082e0b9416e  numpy-1.15.3-cp36-cp36m-manylinux1_i686.whl
7ae9c3baff3b989859c88e0168ad10902118595b996bf781eaf011bb72428798  numpy-1.15.3-cp36-cp36m-manylinux1_x86_64.whl
d8837ff272800668aabdfe70b966631914b0d6513aed4fc1b1428446f771834d  numpy-1.15.3-cp36-none-win32.whl
fa337b6bd5fe2b8c4e705f4102186feb9985de9bb8536d32d5129a658f1789e0  numpy-1.15.3-cp36-none-win_amd64.whl
2aa0910eaeb603b1a5598193cc3bc8eacf1baf6c95cbc3955eb8e15fa380c133  numpy-1.15.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ef694fe72a3995aa778a5095bda946e0d31f7efabd5e8063ad8c6238ab7d3f78  numpy-1.15.3-cp37-cp37m-manylinux1_i686.whl
f1fd1a6f40a501ba4035f5ed2c1f4faa68245d1407bf97d2ee401e4f23d1720b  numpy-1.15.3-cp37-cp37m-manylinux1_x86_64.whl
094f8a83e5bd0a44a7557fa24a46db6ba7d5299c389ddbc9e0e18722f567fb63  numpy-1.15.3-cp37-none-win32.whl
a245464ddf6d90e2d6287e9cef6bcfda2a99467fdcf1b677b99cd0b6c7b43de2  numpy-1.15.3-cp37-none-win_amd64.whl
4656ea0d66a3724fd88aafa39a0c5cef216d1257a71b40534fe589abd46ba77b  numpy-1.15.3.tar.gz
1c0c80e74759fa4942298044274f2c11b08c86230b25b8b819e55e644f5ff2b6  numpy-1.15.3.zip
numpy -

Published by charris about 6 years ago

==========================
NumPy 1.14.6 Release Notes

This is a bugfix release for bugs reported following the 1.14.5 release. The
most significant fixes are:

  • Fix for behavior change in ma.masked_values(shrink=True)
  • Fix the new cached allocations machinery to be thread safe.

The Python versions supported in this release are 2.7 and 3.4 - 3.7. The Python
3.6 wheels on PyPI should be compatible with all Python 3.6 versions.

Contributors

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

  • Charles Harris
  • Eric Wieser
  • Julian Taylor
  • Matti Picus

Pull requests merged

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

  • #11985: BUG: fix cached allocations without the GIL
  • #11986: BUG: Undo behavior change in ma.masked_values(shrink=True)
  • #11987: BUG: fix refcount leak in PyArray_AdaptFlexibleDType
  • #11995: TST: Add Python 3.7 testing to NumPy 1.14.

Checksums

MD5

f67c12a012b32b44e39eb057d6c5e5a9  numpy-1.14.6-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a9325f87cd57dca3164e8920bd93ed30  numpy-1.14.6-cp27-cp27m-manylinux1_i686.whl
a02a64177b422b6059242f01fc39eba9  numpy-1.14.6-cp27-cp27m-manylinux1_x86_64.whl
4d45b10bc3be5e2e87aaf530bbcd9e48  numpy-1.14.6-cp27-cp27mu-manylinux1_i686.whl
d9e0e8d2aa9a198bcebb9e6627669c7b  numpy-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl
cfe9797b5bb22896aae777a356e77eab  numpy-1.14.6-cp27-none-win32.whl
7e2bb331cc8fc5939a362df46cf60081  numpy-1.14.6-cp27-none-win_amd64.whl
1ba6477836db55255943977535bf6821  numpy-1.14.6-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e341e9d58654c8afd15728495a523473  numpy-1.14.6-cp34-cp34m-manylinux1_i686.whl
e326047645ebee9bfac01922663488c7  numpy-1.14.6-cp34-cp34m-manylinux1_x86_64.whl
29f8f49c0c3b3282fcd644d66bf15001  numpy-1.14.6-cp34-none-win32.whl
92ad00143740a54180bb6f2015004940  numpy-1.14.6-cp34-none-win_amd64.whl
0f25ad62a1f7627729296d47a72d5fe4  numpy-1.14.6-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
9027e902724fe6d0468f30f9fed878c9  numpy-1.14.6-cp35-cp35m-manylinux1_i686.whl
25cc365ada785dd26ed74eae5b90630d  numpy-1.14.6-cp35-cp35m-manylinux1_x86_64.whl
b969c8694c91918927b74f82dcbd6e51  numpy-1.14.6-cp35-none-win32.whl
db451ea9b296b95644bbdb0dfe133d38  numpy-1.14.6-cp35-none-win_amd64.whl
afc5355fe367e833bf8b503e2be19e11  numpy-1.14.6-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
200cdb3ed59ced85a6fe4255b4e93c32  numpy-1.14.6-cp36-cp36m-manylinux1_i686.whl
b40851c94f1c7586a1f5b4e9602a748a  numpy-1.14.6-cp36-cp36m-manylinux1_x86_64.whl
7ece416512eb587d237e0ea35a764387  numpy-1.14.6-cp36-none-win32.whl
fb0334939e7f0716415971c1566a3da5  numpy-1.14.6-cp36-none-win_amd64.whl
7cd2d7d164af228289e2a2dd7dc2f6b0  numpy-1.14.6-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f816dd37be0320767994c18aaca1f530  numpy-1.14.6-cp37-cp37m-manylinux1_i686.whl
29539a787aa1c04c5026c7b9c4e611e4  numpy-1.14.6-cp37-cp37m-manylinux1_x86_64.whl
d957e060a892311bd19df11fd2efbce3  numpy-1.14.6-cp37-none-win32.whl
4660539e780b295ab849fe9cd6491994  numpy-1.14.6-cp37-none-win_amd64.whl
dd01e3e29e8f46f2be8f176d3649cab1  numpy-1.14.6.tar.gz
9118b06f0ff86f9545beee4a10a80717  numpy-1.14.6.zip

SHA256

bd6b3906a50f9ad755e2c21a78661eff1bbaab3c803c0fcf22927ec50372dba6  numpy-1.14.6-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f1dd9a8ecbe9f8f13652afe04c470bb837578e402a3641649ddc41764d0e4326  numpy-1.14.6-cp27-cp27m-manylinux1_i686.whl
4c774c852cad87f692e6b3e374ba7074c7a9897cf4bafcc47ad48142d455f3ae  numpy-1.14.6-cp27-cp27m-manylinux1_x86_64.whl
40f9c0ae71453e4d28d40e502e531e72810bf3b12b2d55cad939ab86a26ead42  numpy-1.14.6-cp27-cp27mu-manylinux1_i686.whl
964c2c6a9e0ecac54a368effa26a89a97b2e15266dc68dc78f2519f3040be623  numpy-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl
4e2f4c7031507b23b14056a4bc2b4cbe865607f55b45bfc15cc745a268bc817e  numpy-1.14.6-cp27-none-win32.whl
35be3f06ad20030bfba9ae199fa5d5474aebeabb3197d2ce9fcd8c417f7415e3  numpy-1.14.6-cp27-none-win_amd64.whl
e11e5eba43e0d8b077aafa11e43db7a77af4fa435557972dd3570898e0cbb736  numpy-1.14.6-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
1718e009ac6699868c82c4ed154e64945479f5c3d8826b2e10c470e9fad7bd18  numpy-1.14.6-cp34-cp34m-manylinux1_i686.whl
6eb031402a278a6fa5838e543cf36ed6d21a6ee90e9a2803570d47908ca5e9fd  numpy-1.14.6-cp34-cp34m-manylinux1_x86_64.whl
1b07024c4d87bf7a0738c438aa7fb709f9d7c093513bb8ffb2ac849f4553658c  numpy-1.14.6-cp34-none-win32.whl
e5daec856ea0e1111391179449b855aa29f1433ac507adc3d6c00a96abb438cb  numpy-1.14.6-cp34-none-win_amd64.whl
0e7c5e5358be186e0d6c73a9b34e1b890602ac1db413adc61794e2e3e02ec65c  numpy-1.14.6-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
6f2a52bb05c560fd6f29d7b49dfe8b4d7c5445c448e5587969446a0f10cf9164  numpy-1.14.6-cp35-cp35m-manylinux1_i686.whl
1454aca5a62fe18bb2828ea1b2f9d1534afed7216c13404a6657cda57937c54b  numpy-1.14.6-cp35-cp35m-manylinux1_x86_64.whl
686869ff6adc49b3066fdb44198c0655603b33e2c4d852a04c6a84cd8b224786  numpy-1.14.6-cp35-none-win32.whl
057ca467673a4b0422a9365ea0b53572813764f60896d3d1423f5cc9d2dd0d02  numpy-1.14.6-cp35-none-win_amd64.whl
db10d3d10658a847f85fe9df0d5fe6df190a30d32423d670c3824580e373c0a8  numpy-1.14.6-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7ce70ef6fd9bdfafd896c617761129fafaa06e4683d0bfbf3c56a87c89e02d61  numpy-1.14.6-cp36-cp36m-manylinux1_i686.whl
4ab59a69a627ee73a2723b60723abfe0404947c16acef7b0880d6bbec93ba7cd  numpy-1.14.6-cp36-cp36m-manylinux1_x86_64.whl
33acfba9f453b0b6465c0aa5fe5cb0d32b8483850bc8cc776b4d3cc96595aa03  numpy-1.14.6-cp36-none-win32.whl
6d3e10394dada2cdf8ba354025ddf15a744b4e833c77347e31547c4b5c77deab  numpy-1.14.6-cp36-none-win_amd64.whl
d37f058ea9a2fd2a9160b0cc65bbfb302dfcea8d5fe178299938d95d7bfa2b83  numpy-1.14.6-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a1cafe27328c1f01127297f11e2be25d5d3821d2654a7459e017cfce98258995  numpy-1.14.6-cp37-cp37m-manylinux1_i686.whl
df2937c62d8d3059c1396c7cacfc12577c0923e2a37557592759358848b1544c  numpy-1.14.6-cp37-cp37m-manylinux1_x86_64.whl
d3f22c0781ad5fe51d7210f36a91f01620355520996fc332a1d0cf24e0cab794  numpy-1.14.6-cp37-none-win32.whl
fe909f8d14b2f16ea5d9ec2234fc0ffbfccccaef1ba6bc27d9d21acfe8cc72e1  numpy-1.14.6-cp37-none-win_amd64.whl
61b01b87d1e76df9a1e43fff727c1e0289c4cd2bc7be9f806e97b45aed3682cc  numpy-1.14.6.tar.gz
1250edf6f6c43e1d7823f0967416bc18258bb271dc536298eb0ea00a9e45b80a  numpy-1.14.6.zip
numpy -

Published by charris about 6 years ago

==========================
NumPy 1.15.2 Release Notes

This is a bugfix release for bugs and regressions reported following the 1.15.1
release.

  • The matrix PendingDeprecationWarning is now suppressed in pytest 3.8.
  • The new cached allocations machinery has been fixed to be thread safe.
  • The boolean indexing of subclasses now works correctly.
  • A small memory leak in PyArray_AdaptFlexibleDType has been fixed.

The Python versions supported by this release are 2.7, 3.4-3.7. The wheels are
linked with OpenBLAS v0.3.0, which should fix some of the linalg problems
reported for NumPy 1.14.

Compatibility Note

The NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit
binaries. That will also be the case in future releases. See
#11625 <https://github.com/numpy/numpy/issues/11625>__ for the related
discussion. Those needing 32-bit support should look elsewhere or build
from source.

Contributors

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

  • Charles Harris
  • Julian Taylor
  • Marten van Kerkwijk
  • Matti Picus

Pull requests merged

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

  • #11902: BUG: Fix matrix PendingDeprecationWarning suppression for pytest...
  • #11981: BUG: fix cached allocations without the GIL for 1.15.x
  • #11982: BUG: fix refcount leak in PyArray_AdaptFlexibleDType
  • #11992: BUG: Ensure boolean indexing of subclasses sets base correctly.

Checksums

MD5

6935d733421b32533eebc7d9a5b1bde9  numpy-1.15.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d80b588176313013d50a513d1b3d8cb8  numpy-1.15.2-cp27-cp27m-manylinux1_i686.whl
34b93ec0335f8dd028137bd3c1434800  numpy-1.15.2-cp27-cp27m-manylinux1_x86_64.whl
008df3819bf77abdb0546d96f660bec0  numpy-1.15.2-cp27-cp27mu-manylinux1_i686.whl
48530fca78a9abdfa34c2b19c2d45600  numpy-1.15.2-cp27-cp27mu-manylinux1_x86_64.whl
3b6032a8100df348ab0c17545dd7b72d  numpy-1.15.2-cp27-none-win32.whl
2e1c8985c10e813a7b8de54f18f99921  numpy-1.15.2-cp27-none-win_amd64.whl
2e9bab1f2bb399945cd660062c1d63ac  numpy-1.15.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d774936507ac59e0ed8cd6b9592449fe  numpy-1.15.2-cp34-cp34m-manylinux1_i686.whl
5f0b7cb501e3e459f043725330dd19f8  numpy-1.15.2-cp34-cp34m-manylinux1_x86_64.whl
5c54aa9f3825af973ed7c4c38bf499bc  numpy-1.15.2-cp34-none-win32.whl
1f479fa8f54da6726aa9729d296d31e7  numpy-1.15.2-cp34-none-win_amd64.whl
e7100118df61980e784ac71a9eafe410  numpy-1.15.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f55e7f845d9f18a6c3cf8a0dc4515226  numpy-1.15.2-cp35-cp35m-manylinux1_i686.whl
de9a79dd7abcaa099b34234d7ee43903  numpy-1.15.2-cp35-cp35m-manylinux1_x86_64.whl
48e7213f7029a38e6a63e1e92c50c15d  numpy-1.15.2-cp35-none-win32.whl
3086e690e4eef8b10523349e93c34dcb  numpy-1.15.2-cp35-none-win_amd64.whl
9e56f996c325345a5a3076a9f5d0abfe  numpy-1.15.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e7835fb3d56d4bbcd8d47120df709cbf  numpy-1.15.2-cp36-cp36m-manylinux1_i686.whl
5151de4cfdec3623d4061d0e7a8677bb  numpy-1.15.2-cp36-cp36m-manylinux1_x86_64.whl
7f911b24989f8d6aa0e6617fea6e8c10  numpy-1.15.2-cp36-none-win32.whl
948dbd9c23ac7948485d5a07a48a27eb  numpy-1.15.2-cp36-none-win_amd64.whl
921214854ed05d5e0c294b2fcc345d37  numpy-1.15.2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
38a69cfe0d954d05054a73e5f56b1533  numpy-1.15.2-cp37-cp37m-manylinux1_i686.whl
4ce844e4452baf8c25025e53e59d91ff  numpy-1.15.2-cp37-cp37m-manylinux1_x86_64.whl
2de0167b4297d1732e25c9288bbe3add  numpy-1.15.2-cp37-none-win32.whl
de26b3d5573b0c9a6cd38eeb4e8d865e  numpy-1.15.2-cp37-none-win_amd64.whl
d40b15478148a48ec324327578de4583  numpy-1.15.2.tar.gz
5a55a994eca6095b1e82d44600217ece  numpy-1.15.2.zip

SHA256

b5ff7dae352fd9e1edddad1348698e9fea14064460a7e39121ef9526745802e6  numpy-1.15.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
1b1cf8f7300cf7b11ddb4250b3898c711a6187df05341b5b7153db23ffe5d498  numpy-1.15.2-cp27-cp27m-manylinux1_i686.whl
ec8bf53ef7c92c99340972519adbe122e82c81d5b87cbd955c74ba8a8cd2a4ad  numpy-1.15.2-cp27-cp27m-manylinux1_x86_64.whl
733dc5d47e71236263837825b69c975bc08728ae638452b34aeb1d6fa347b780  numpy-1.15.2-cp27-cp27mu-manylinux1_i686.whl
82f00a1e2695a0e5b89879aa25ea614530b8ebdca6d49d4834843d498e8a5e92  numpy-1.15.2-cp27-cp27mu-manylinux1_x86_64.whl
63f833a7c622e9082df3cbaf03b4fd92d7e0c11e2f9d87cb57dbf0e84441964b  numpy-1.15.2-cp27-none-win32.whl
c898f9cca806102fcacb6309899743aa39efb2ad2a302f4c319f54db9f05cd84  numpy-1.15.2-cp27-none-win_amd64.whl
f2e55726a9ee2e8129d6ce6abb466304868051bcc7a09d652b3b07cd86e801a2  numpy-1.15.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
981224224bbf44d95278eb37996162e8beb6f144d2719b144e86dfe2fce6c510  numpy-1.15.2-cp34-cp34m-manylinux1_i686.whl
f592fd7fe1f20b5041928cce1330937eca62f9058cb41e69c2c2d83cffc0d1e3  numpy-1.15.2-cp34-cp34m-manylinux1_x86_64.whl
9ad36dbfdbb0cba90a08e7343fadf86f43cf6d87450e8d2b5d71d7c7202907e4  numpy-1.15.2-cp34-none-win32.whl
d1569013e8cc8f37e9769d19effdd85e404c976cd0ca28a94e3ddc026c216ae8  numpy-1.15.2-cp34-none-win_amd64.whl
8d2cfb0aef7ec8759736cce26946efa084cdf49797712333539ef7d135e0295e  numpy-1.15.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f4dee74f2626c783a3804df9191e9008946a104d5a284e52427a53ff576423cb  numpy-1.15.2-cp35-cp35m-manylinux1_i686.whl
497d7c86df4f85eb03b7f58a7dd0f8b948b1f582e77629341f624ba301b4d204  numpy-1.15.2-cp35-cp35m-manylinux1_x86_64.whl
866bf72b9c3bfabe4476d866c70ee1714ad3e2f7b7048bb934892335e7b6b1f7  numpy-1.15.2-cp35-none-win32.whl
71bf3b7ca15b1967bba3a1ef6a8e87286382a8b5e46ac76b42a02fe787c5237d  numpy-1.15.2-cp35-none-win_amd64.whl
4e28e66cf80c09a628ae680efeb0aa9a066eb4bb7db2a5669024c5b034891576  numpy-1.15.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
8aeac8b08f4b8c52129518efcd93706bb6d506ccd17830b67d18d0227cf32d9e  numpy-1.15.2-cp36-cp36m-manylinux1_i686.whl
a251570bb3cb04f1627f23c234ad09af0e54fc8194e026cf46178f2e5748d647  numpy-1.15.2-cp36-cp36m-manylinux1_x86_64.whl
5b4dfb6551eaeaf532054e2c6ef4b19c449c2e3a709ebdde6392acb1372ecabc  numpy-1.15.2-cp36-none-win32.whl
981daff58fa3985a26daa4faa2b726c4e7a1d45178100125c0e1fdaf2ac64978  numpy-1.15.2-cp36-none-win_amd64.whl
dca261e85fe0d34b2c242ecb31c9ab693509af2cf955d9caf01ee3ef3669abd0  numpy-1.15.2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ffab5b80bba8c86251291b8ce2e6c99a61446459d4c6637f5d5cc8c9ce37c972  numpy-1.15.2-cp37-cp37m-manylinux1_i686.whl
58be95faf0ca2d886b5b337e7cba2923e3ad1224b806a91223ea39f1e0c77d03  numpy-1.15.2-cp37-cp37m-manylinux1_x86_64.whl
3fde172e28c899580d32dc21cb6d4a1225d62362f61050b654545c662eac215a  numpy-1.15.2-cp37-none-win32.whl
cf4b970042ce148ad8dce4369c02a4078b382dadf20067ce2629c239d76460d1  numpy-1.15.2-cp37-none-win_amd64.whl
6a1e96568332fd8974b355a422b397288e214746715a7fa6abc10b34d06bad76  numpy-1.15.2.tar.gz
27a0d018f608a3fe34ac5e2b876f4c23c47e38295c47dd0775cc294cd2614bc1  numpy-1.15.2.zip
numpy -

Published by charris about 6 years ago

==========================
NumPy 1.15.1 Release Notes

This is a bugfix release for bugs and regressions reported following the 1.15.0
release.

  • The annoying but harmless RuntimeWarning that "numpy.dtype size changed" has
    been suppressed. The long standing suppression was lost in the transition to
    pytest.
  • The update to Cython 0.28.3 exposed a problematic use of a gcc attribute used
    to prefer code size over speed in module initialization, possibly resulting in
    incorrect compiled code. This has been fixed in latest Cython but has been
    disabled here for safety.
  • Support for big-endian and ARMv8 architectures has been improved.

The Python versions supported by this release are 2.7, 3.4-3.7. The wheels are
linked with OpenBLAS v0.3.0, which should fix some of the linalg problems
reported for NumPy 1.14.

Compatibility Note

The NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit
binaries. That will also be the case in future releases. See
#11625 <https://github.com/numpy/numpy/issues/11625>__ for the related
discussion. Those needing 32-bit support should look elsewhere or build
from source.

Contributors

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

  • Charles Harris
  • Chris Billington
  • Elliott Sales de Andrade +
  • Eric Wieser
  • Jeremy Manning +
  • Matti Picus
  • Ralf Gommers

Pull requests merged

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

  • #11647: MAINT: Filter Cython warnings in __init__.py
  • #11648: BUG: Fix doc source links to unwrap decorators
  • #11657: BUG: Ensure singleton dimensions are not dropped when converting...
  • #11661: BUG: Warn on Nan in minimum,maximum for scalars
  • #11665: BUG: cython sometimes emits invalid gcc attribute
  • #11682: BUG: Fix regression in void_getitem
  • #11698: BUG: Make matrix_power again work for object arrays.
  • #11700: BUG: Add missing PyErr_NoMemory after failing malloc
  • #11719: BUG: Fix undefined functions on big-endian systems.
  • #11720: MAINT: Make einsum optimize default to False.
  • #11746: BUG: Fix regression in loadtxt for bz2 text files in Python 2.
  • #11757: BUG: Revert use of console_scripts.
  • #11758: BUG: Fix Fortran kind detection for aarch64 & s390x.
  • #11759: BUG: Fix printing of longdouble on ppc64le.
  • #11760: BUG: Fixes for unicode field names in Python 2
  • #11761: BUG: Increase required cython version on python 3.7
  • #11763: BUG: check return value of _buffer_format_string
  • #11775: MAINT: Make assert_array_compare more generic.
  • #11776: TST: Fix urlopen stubbing.
  • #11777: BUG: Fix regression in intersect1d.
  • #11779: BUG: Fix test sensitive to platform byte order.
  • #11781: BUG: Avoid signed overflow in histogram
  • #11785: BUG: Fix pickle and memoryview for datetime64, timedelta64 scalars
  • #11786: BUG: Deprecation triggers segfault

Checksums

MD5

8e894e6873420259fa13bc685ca922a7  numpy-1.15.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
75154de03468c18c8b8d337b75d29bad  numpy-1.15.1-cp27-cp27m-manylinux1_i686.whl
50e3db64b9be2d399f7035ea71e16092  numpy-1.15.1-cp27-cp27m-manylinux1_x86_64.whl
35e15be82a5fc807572c7723171902b4  numpy-1.15.1-cp27-cp27mu-manylinux1_i686.whl
315cc1fb777c5251f27e49075b4d13fb  numpy-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl
7b6fbdca75eeb0a0c28c09bfaf2e17c2  numpy-1.15.1-cp27-none-win32.whl
8bc75bc94bd189a4cc3ded0f0e9b1353  numpy-1.15.1-cp27-none-win_amd64.whl
3c8950f10241185376ae6dd425209543  numpy-1.15.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3e488ea8de86391335a56e7e2b2c47de  numpy-1.15.1-cp34-cp34m-manylinux1_i686.whl
0edee0d56ea5670b93b47410e66fa337  numpy-1.15.1-cp34-cp34m-manylinux1_x86_64.whl
67670224f931699c3836a1c9e4e8230b  numpy-1.15.1-cp34-none-win32.whl
5b9e984e562aac63b7549e456bd89dfe  numpy-1.15.1-cp34-none-win_amd64.whl
063f6a86f0713211b69050545e7c6c2c  numpy-1.15.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
4afe4fd3ea108a967bd0b9425305b979  numpy-1.15.1-cp35-cp35m-manylinux1_i686.whl
e1ebc2bc6d0947159b33f208e844251a  numpy-1.15.1-cp35-cp35m-manylinux1_x86_64.whl
910aab0be682f29a182239e4bd4631cf  numpy-1.15.1-cp35-none-win32.whl
bfaac6c5f4e8ab65cd76b010ea5c5dfe  numpy-1.15.1-cp35-none-win_amd64.whl
ce48f8b807c9ac8b7d00301584ab7976  numpy-1.15.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d7d0c86acb89a86894811b8a792fba89  numpy-1.15.1-cp36-cp36m-manylinux1_i686.whl
3cd21facc099e72ab56a957978207c8c  numpy-1.15.1-cp36-cp36m-manylinux1_x86_64.whl
04471e530164dd25c7a9c1309712cc64  numpy-1.15.1-cp36-none-win32.whl
013ea5fbb8a953c2112acaa591c675a8  numpy-1.15.1-cp36-none-win_amd64.whl
3fdd39812b8fe172824d2cc52cb807c4  numpy-1.15.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
381bd5ea598b17333264b1cbc9f62fac  numpy-1.15.1-cp37-cp37m-manylinux1_i686.whl
e600bd09303c622ff4d16ed63fefb205  numpy-1.15.1-cp37-cp37m-manylinux1_x86_64.whl
c05625370ff437b3e1a4f08cf194e3e4  numpy-1.15.1-cp37-none-win32.whl
f476babe66c6104c00accbf0bcfafce5  numpy-1.15.1-cp37-none-win_amd64.whl
e369ffae42ab89c7d1be5fe786e27702  numpy-1.15.1.tar.gz
898004d5be091fde59ae353e3008fe9b  numpy-1.15.1.zip

SHA256

5e359e9c531075220785603e5966eef20ccae9b3b6b8a06fdfb66c084361ce92  numpy-1.15.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
419e6faee16097124ee627ed31572c7e80a1070efa25260b78097cca240e219a  numpy-1.15.1-cp27-cp27m-manylinux1_i686.whl
719b6789acb2bc86ea9b33a701d7c43dc2fc56d95107fd3c5b0a8230164d4dfb  numpy-1.15.1-cp27-cp27m-manylinux1_x86_64.whl
62d55e96ec7b117d3d5e618c15efcf769e70a6effaee5842857b64fb4883887a  numpy-1.15.1-cp27-cp27mu-manylinux1_i686.whl
df0b02c6705c5d1c25cc35c7b5d6b6f9b3b30833f9d178843397ae55ecc2eebb  numpy-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl
dae8618c0bcbfcf6cf91350f8abcdd84158323711566a8c5892b5c7f832af76f  numpy-1.15.1-cp27-none-win32.whl
a3bd01d6d3ed3d7c06d7f9979ba5d68281f15383fafd53b81aa44b9191047cf8  numpy-1.15.1-cp27-none-win_amd64.whl
1c362ad12dd09a43b348bb28dd2295dd9cdf77f41f0f45965e04ba97f525b864  numpy-1.15.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
83b8fc18261b70f45bece2d392537c93dc81eb6c539a16c9ac994c47fc79f09a  numpy-1.15.1-cp34-cp34m-manylinux1_i686.whl
ce75ed495a746e3e78cfa22a77096b3bff2eda995616cb7a542047f233091268  numpy-1.15.1-cp34-cp34m-manylinux1_x86_64.whl
340ec1697d9bb3a9c464028af7a54245298502e91178bddb4c37626d36e197b7  numpy-1.15.1-cp34-none-win32.whl
2156a06bd407918df4ac0122df6497a9c137432118f585e5b17d543e593d1587  numpy-1.15.1-cp34-none-win_amd64.whl
549f3e9778b148a47f4fb4682955ed88057eb627c9fe5467f33507c536deda9d  numpy-1.15.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
378378973546ecc1dfaf9e24c160d683dd04df871ecd2dcc86ce658ca20f92c0  numpy-1.15.1-cp35-cp35m-manylinux1_i686.whl
35db8d419345caa4eeaa65cd63f34a15208acd87530a30f0bc25fc84f55c8c80  numpy-1.15.1-cp35-cp35m-manylinux1_x86_64.whl
4287104c24e6a09b9b418761a1e7b1bbde65105f110690ca46a23600a3c606b8  numpy-1.15.1-cp35-none-win32.whl
7a70f2b60d48828cba94a54a8776b61a9c2657a803d47f5785f8062e3a9c7c55  numpy-1.15.1-cp35-none-win_amd64.whl
e3660744cda0d94b90141cdd0db9308b958a372cfeee8d7188fdf5ad9108ea82  numpy-1.15.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
5ee7f3dbbdba0da75dec7e94bd7a2b10fe57a83e1b38e678200a6ad8e7b14fdc  numpy-1.15.1-cp36-cp36m-manylinux1_i686.whl
36e8dcd1813ca92ce7e4299120cee6c03adad33d89b54862c1b1a100443ac399  numpy-1.15.1-cp36-cp36m-manylinux1_x86_64.whl
9473ad28375710ab18378e72b59422399b27e957e9339c413bf00793b4b12df0  numpy-1.15.1-cp36-none-win32.whl
c81a6afc1d2531a9ada50b58f8c36197f8418ef3d0611d4c1d7af93fdcda764f  numpy-1.15.1-cp36-none-win_amd64.whl
98b86c62c08c2e5dc98a9c856d4a95329d11b1c6058cb9b5191d5ea6891acd09  numpy-1.15.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
24e4149c38489b51fc774b1e1faa9103e82f73344d7a00ba66f6845ab4769f3f  numpy-1.15.1-cp37-cp37m-manylinux1_i686.whl
95b085b253080e5d09f7826f5e27dce067bae813a132023a77b739614a29de6e  numpy-1.15.1-cp37-cp37m-manylinux1_x86_64.whl
361370e9b7f5e44c41eee29f2bb5cb3b755abb4b038bce6d6cbe08db7ff9cb74  numpy-1.15.1-cp37-none-win32.whl
f2362d0ca3e16c37782c1054d7972b8ad2729169567e3f0f4e5dd3cdf85f188e  numpy-1.15.1-cp37-none-win_amd64.whl
3c1ccce5d935ef8df16ae0595b459ef08a5cdb05aee195ebc04b9d89a72be7fa  numpy-1.15.1.tar.gz
7b9e37f194f8bcdca8e9e6af92e2cbad79e360542effc2dd6b98d63955d8d8a3  numpy-1.15.1.zip
numpy -

Published by charris about 6 years ago

==========================
NumPy 1.15.0 Release Notes

NumPy 1.15.0 is a release with an unusual number of cleanups, many deprecations
of old functions, and improvements to many existing functions. Please read the
detailed descriptions below to see if you are affected.

For testing, we have switched to pytest as a replacement for the no longer
maintained nose framework. The old nose based interface remains for downstream
projects who may still be using it.

The Python versions supported by this release are 2.7, 3.4-3.7. The wheels are
linked with OpenBLAS v0.3.0, which should fix some of the linalg problems
reported for NumPy 1.14.

Highlights

  • NumPy has switched to pytest for testing.
  • A new numpy.printoptions context manager.
  • Many improvements to the histogram functions.
  • Support for unicode field names in python 2.7.
  • Improved support for PyPy.
  • Fixes and improvements to numpy.einsum.

New functions

  • numpy.gcd and numpy.lcm, to compute the greatest common divisor and least
    common multiple.

  • numpy.ma.stack, the numpy.stack array-joining function generalized to
    masked arrays.

  • numpy.quantile function, an interface to percentile without factors of
    100

  • numpy.nanquantile function, an interface to nanpercentile without
    factors of 100

  • numpy.printoptions, a context manager that sets print options temporarily
    for the scope of the with block::

    with np.printoptions(precision=2):
    ... print(np.array([2.0]) / 3)
    [0.67]

  • numpy.histogram_bin_edges, a function to get the edges of the bins used by a
    histogram without needing to calculate the histogram.

  • C functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added to deal with compiler optimization changing the order of
    operations. See below for details.

Deprecations

  • Aliases of builtin pickle functions are deprecated, in favor of their
    unaliased pickle.<func> names:

    • numpy.loads
    • numpy.core.numeric.load
    • numpy.core.numeric.loads
    • numpy.ma.loads, numpy.ma.dumps
    • numpy.ma.load, numpy.ma.dump - these functions already failed on
      python 3 when called with a string.
  • Multidimensional indexing with anything but a tuple is deprecated. This means
    that the index list in ind = [slice(None), 0]; arr[ind] should be changed
    to a tuple, e.g., ind = [slice(None), 0]; arr[tuple(ind)] or
    arr[(slice(None), 0)]. That change is necessary to avoid ambiguity in
    expressions such as arr[[[0, 1], [0, 1]]], currently interpreted as
    arr[array([0, 1]), array([0, 1])], that will be interpreted
    as arr[array([[0, 1], [0, 1]])] in the future.

  • Imports from the following sub-modules are deprecated, they will be removed
    at some future date.

    • numpy.testing.utils
    • numpy.testing.decorators
    • numpy.testing.nosetester
    • numpy.testing.noseclasses
    • numpy.core.umath_tests
  • Giving a generator to numpy.sum is now deprecated. This was undocumented
    behavior, but worked. Previously, it would calculate the sum of the generator
    expression. In the future, it might return a different result. Use
    np.sum(np.from_iter(generator)) or the built-in Python sum instead.

  • Users of the C-API should call PyArrayResolveWriteBackIfCopy or
    PyArray_DiscardWritbackIfCopy on any array with the WRITEBACKIFCOPY
    flag set, before deallocating the array. A deprecation warning will be
    emitted if those calls are not used when needed.

  • Users of nditer should use the nditer object as a context manager
    anytime one of the iterator operands is writeable, so that numpy can
    manage writeback semantics, or should call it.close(). A
    RuntimeWarning may be emitted otherwise in these cases.

  • The normed argument of np.histogram, deprecated long ago in 1.6.0,
    now emits a DeprecationWarning.

Future Changes

  • NumPy 1.16 will drop support for Python 3.4.
  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

Compiled testing modules renamed and made private

The following compiled modules have been renamed and made private:

  • umath_tests -> _umath_tests
  • test_rational -> _rational_tests
  • multiarray_tests -> _multiarray_tests
  • struct_ufunc_test -> _struct_ufunc_tests
  • operand_flag_tests -> _operand_flag_tests

The umath_tests module is still available for backwards compatibility, but
will be removed in the future.

The NpzFile returned by np.savez is now a collections.abc.Mapping

This means it behaves like a readonly dictionary, and has a new .values()
method and len() implementation.

For python 3, this means that .iteritems(), .iterkeys() have been
deprecated, and .keys() and .items() now return views and not lists.
This is consistent with how the builtin dict type changed between python 2
and python 3.

Under certain conditions, nditer must be used in a context manager

When using an numpy.nditer with the "writeonly" or "readwrite" flags, there
are some circumstances where nditer doesn't actually give you a view of the
writable array. Instead, it gives you a copy, and if you make changes to the
copy, nditer later writes those changes back into your actual array. Currently,
this writeback occurs when the array objects are garbage collected, which makes
this API error-prone on CPython and entirely broken on PyPy. Therefore,
nditer should now be used as a context manager whenever it is used
with writeable arrays, e.g., with np.nditer(...) as it: .... You may also
explicitly call it.close() for cases where a context manager is unusable,
for instance in generator expressions.

Numpy has switched to using pytest instead of nose for testing

The last nose release was 1.3.7 in June, 2015, and development of that tool has
ended, consequently NumPy has now switched to using pytest. The old decorators
and nose tools that were previously used by some downstream projects remain
available, but will not be maintained. The standard testing utilities,
assert_almost_equal and such, are not be affected by this change except for
the nose specific functions import_nose and raises. Those functions are
not used in numpy, but are kept for downstream compatibility.

Numpy no longer monkey-patches ctypes with __array_interface__

Previously numpy added __array_interface__ attributes to all the integer
types from ctypes.

np.ma.notmasked_contiguous and np.ma.flatnotmasked_contiguous always return lists

This is the documented behavior, but previously the result could be any of
slice, None, or list.

All downstream users seem to check for the None result from
flatnotmasked_contiguous and replace it with []. Those callers will
continue to work as before.

np.squeeze restores old behavior of objects that cannot handle an axis argument

Prior to version 1.7.0, numpy.squeeze did not have an axis argument and
all empty axes were removed by default. The incorporation of an axis
argument made it possible to selectively squeeze single or multiple empty axes,
but the old API expectation was not respected because axes could still be
selectively removed (silent success) from an object expecting all empty axes to
be removed. That silent, selective removal of empty axes for objects expecting
the old behavior has been fixed and the old behavior restored.

unstructured void array's .item method now returns a bytes object

.item now returns a bytes object instead of a buffer or byte array.
This may affect code which assumed the return value was mutable, which is no
longer the case.

copy.copy and copy.deepcopy no longer turn masked into an array

Since np.ma.masked is a readonly scalar, copying should be a no-op. These
functions now behave consistently with np.copy().

Multifield Indexing of Structured Arrays will still return a copy

The change that multi-field indexing of structured arrays returns a view
instead of a copy is pushed back to 1.16. A new method
numpy.lib.recfunctions.repack_fields has been introduced to help mitigate
the effects of this change, which can be used to write code compatible with
both numpy 1.15 and 1.16. For more information on how to update code to account
for this future change see the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html>__.

C API changes

New functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier

Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
have been added and should be used in place of the npy_get_floatstatusand
npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
were rearranging the order of operations when the previous functions were used
in the ufunc SIMD functions, resulting in the floatstatus flags being checked
before the operation whose status we wanted to check was run. See #10339 <https://github.com/numpy/numpy/issues/10370>__.

Changes to PyArray_GetDTypeTransferFunction

PyArray_GetDTypeTransferFunction now defaults to using user-defined
copyswapn / copyswap for user-defined dtypes. If this causes a
significant performance hit, consider implementing copyswapn to reflect the
implementation of PyArray_GetStridedCopyFn. See #10898 <https://github.com/numpy/numpy/pull/10898>__.

  • Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added and should be used in place of the npy_get_floatstatusand
    npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
    were rearranging the order of operations when the previous functions were
    used in the ufunc SIMD functions, resulting in the floatstatus flags being '
    checked before the operation whose status we wanted to check was run.
    See #10339 <https://github.com/numpy/numpy/issues/10370>__.

New Features

np.gcd and np.lcm ufuncs added for integer and objects types

These compute the greatest common divisor, and lowest common multiple,
respectively. These work on all the numpy integer types, as well as the
builtin arbitrary-precision Decimal and long types.

Support for cross-platform builds for iOS

The build system has been modified to add support for the
_PYTHON_HOST_PLATFORM environment variable, used by distutils when
compiling on one platform for another platform. This makes it possible to
compile NumPy for iOS targets.

This only enables you to compile NumPy for one specific platform at a time.
Creating a full iOS-compatible NumPy package requires building for the 5
architectures supported by iOS (i386, x86_64, armv7, armv7s and arm64), and
combining these 5 compiled builds products into a single "fat" binary.

return_indices keyword added for np.intersect1d

New keyword return_indices returns the indices of the two input arrays
that correspond to the common elements.

np.quantile and np.nanquantile

Like np.percentile and np.nanpercentile, but takes quantiles in [0, 1]
rather than percentiles in [0, 100]. np.percentile is now a thin wrapper
around np.quantile with the extra step of dividing by 100.

Build system

Added experimental support for the 64-bit RISC-V architecture.

Improvements

np.einsum updates

Syncs einsum path optimization tech between numpy and opt_einsum. In
particular, the greedy path has received many enhancements by @jcmgray. A
full list of issues fixed are:

  • Arbitrary memory can be passed into the greedy path. Fixes gh-11210.
  • The greedy path has been updated to contain more dynamic programming ideas
    preventing a large number of duplicate (and expensive) calls that figure out
    the actual pair contraction that takes place. Now takes a few seconds on
    several hundred input tensors. Useful for matrix product state theories.
  • Reworks the broadcasting dot error catching found in gh-11218 gh-10352 to be
    a bit earlier in the process.
  • Enhances the can_dot functionality that previous missed an edge case (part
    of gh-11308).

np.ufunc.reduce and related functions now accept an initial value

np.ufunc.reduce, np.sum, np.prod, np.min and np.max all
now accept an initial keyword argument that specifies the value to start
the reduction with.

np.flip can operate over multiple axes

np.flip now accepts None, or tuples of int, in its axis argument. If
axis is None, it will flip over all the axes.

histogram and histogramdd functions have moved to np.lib.histograms

These were originally found in np.lib.function_base. They are still
available under their un-scoped np.histogram(dd) names, and
to maintain compatibility, aliased at np.lib.function_base.histogram(dd).

Code that does from np.lib.function_base import * will need to be updated
with the new location, and should consider not using import * in future.

histogram will accept NaN values when explicit bins are given

Previously it would fail when trying to compute a finite range for the data.
Since the range is ignored anyway when the bins are given explicitly, this error
was needless.

Note that calling histogram on NaN values continues to raise the
RuntimeWarning s typical of working with nan values, which can be silenced
as usual with errstate.

histogram works on datetime types, when explicit bin edges are given

Dates, times, and timedeltas can now be histogrammed. The bin edges must be
passed explicitly, and are not yet computed automatically.

histogram "auto" estimator handles limited variance better

No longer does an IQR of 0 result in n_bins=1, rather the number of bins
chosen is related to the data size in this situation.

The edges retuned by `histogramandhistogramdd`` now match the data float type

When passed np.float16, np.float32, or np.longdouble data, the
returned edges are now of the same dtype. Previously, histogram would only
return the same type if explicit bins were given, and histogram would
produce float64 bins no matter what the inputs.

histogramdd allows explicit ranges to be given in a subset of axes

The range argument of numpy.histogramdd can now contain None values to
indicate that the range for the corresponding axis should be computed from the
data. Previously, this could not be specified on a per-axis basis.

The normed arguments of histogramdd and histogram2d have been renamed

These arguments are now called density, which is consistent with
histogram. The old argument continues to work, but the new name should be
preferred.

np.r_ works with 0d arrays, and np.ma.mr_ works with np.ma.masked

0d arrays passed to the r_ and mr_ concatenation helpers are now treated as
though they are arrays of length 1. Previously, passing these was an error.
As a result, numpy.ma.mr_ now works correctly on the masked constant.

np.ptp accepts a keepdims argument, and extended axis tuples

np.ptp (peak-to-peak) can now work over multiple axes, just like np.max
and np.min.

MaskedArray.astype now is identical to ndarray.astype

This means it takes all the same arguments, making more code written for
ndarray work for masked array too.

Enable AVX2/AVX512 at compile time

Change to simd.inc.src to allow use of AVX2 or AVX512 at compile time. Previously
compilation for avx2 (or 512) with -march=native would still use the SSE
code for the simd functions even when the rest of the code got AVX2.

nan_to_num always returns scalars when receiving scalar or 0d inputs

Previously an array was returned for integer scalar inputs, which is
inconsistent with the behavior for float inputs, and that of ufuncs in general.
For all types of scalar or 0d input, the result is now a scalar.

np.flatnonzero works on numpy-convertible types

np.flatnonzero now uses np.ravel(a) instead of a.ravel(), so it
works for lists, tuples, etc.

np.interp returns numpy scalars rather than builtin scalars

Previously np.interp(0.5, [0, 1], [10, 20]) would return a float, but
now it returns a np.float64 object, which more closely matches the behavior
of other functions.

Additionally, the special case of np.interp(object_array_0d, ...) is no
longer supported, as np.interp(object_array_nd) was never supported anyway.

As a result of this change, the period argument can now be used on 0d
arrays.

Allow dtype field names to be unicode in Python 2

Previously np.dtype([(u'name', float)]) would raise a TypeError in
Python 2, as only bytestrings were allowed in field names. Now any unicode
string field names will be encoded with the ascii codec, raising a
UnicodeEncodeError upon failure.

This change makes it easier to write Python 2/3 compatible code using
from __future__ import unicode_literals, which previously would cause
string literal field names to raise a TypeError in Python 2.

Comparison ufuncs accept dtype=object, overriding the default bool

This allows object arrays of symbolic types, which override == and other
operators to return expressions, to be compared elementwise with
np.equal(a, b, dtype=object).

sort functions accept kind='stable'

Up until now, to perform a stable sort on the data, the user must do:

>>> np.sort([5, 2, 6, 2, 1], kind='mergesort')
[1, 2, 2, 5, 6]

because merge sort is the only stable sorting algorithm available in
NumPy. However, having kind='mergesort' does not make it explicit that
the user wants to perform a stable sort thus harming the readability.

This change allows the user to specify kind='stable' thus clarifying
the intent.

Do not make temporary copies for in-place accumulation

When ufuncs perform accumulation they no longer make temporary copies because
of the overlap between input an output, that is, the next element accumulated
is added before the accumulated result is stored in its place, hence the
overlap is safe. Avoiding the copy results in faster execution.

linalg.matrix_power can now handle stacks of matrices

Like other functions in linalg, matrix_power can now deal with arrays
of dimension larger than 2, which are treated as stacks of matrices. As part
of the change, to further improve consistency, the name of the first argument
has been changed to a (from M), and the exceptions for non-square
matrices have been changed to LinAlgError (from ValueError).

Increased performance in random.permutation for multidimensional arrays

permutation uses the fast path in random.shuffle for all input
array dimensions. Previously the fast path was only used for 1-d arrays.

Generalized ufuncs now accept axes, axis and keepdims arguments

One can control over which axes a generalized ufunc operates by passing in an
axes argument, a list of tuples with indices of particular axes. For
instance, for a signature of (i,j),(j,k)->(i,k) appropriate for matrix
multiplication, the base elements are two-dimensional matrices and these are
taken to be stored in the two last axes of each argument. The corresponding
axes keyword would be [(-2, -1), (-2, -1), (-2, -1)]. If one wanted to
use leading dimensions instead, one would pass in [(0, 1), (0, 1), (0, 1)].

For simplicity, for generalized ufuncs that operate on 1-dimensional arrays
(vectors), a single integer is accepted instead of a single-element tuple, and
for generalized ufuncs for which all outputs are scalars, the (empty) output
tuples can be omitted. Hence, for a signature of (i),(i)->() appropriate
for an inner product, one could pass in axes=[0, 0] to indicate that the
vectors are stored in the first dimensions of the two inputs arguments.

As a short-cut for generalized ufuncs that are similar to reductions, i.e.,
that act on a single, shared core dimension such as the inner product example
above, one can pass an axis argument. This is equivalent to passing in
axes with identical entries for all arguments with that core dimension
(e.g., for the example above, axes=[(axis,), (axis,)]).

Furthermore, like for reductions, for generalized ufuncs that have inputs that
all have the same number of core dimensions and outputs with no core dimension,
one can pass in keepdims to leave a dimension with size 1 in the outputs,
thus allowing proper broadcasting against the original inputs. The location of
the extra dimension can be controlled with axes. For instance, for the
inner-product example, keepdims=True, axes=[-2, -2, -2] would act on the
inner-product example, keepdims=True, axis=-2 would act on the
one-but-last dimension of the input arguments, and leave a size 1 dimension in
that place in the output.

float128 values now print correctly on ppc systems

Previously printing float128 values was buggy on ppc, since the special
double-double floating-point-format on these systems was not accounted for.
float128s now print with correct rounding and uniqueness.

Warning to ppc users: You should upgrade glibc if it is version <=2.23,
especially if using float128. On ppc, glibc's malloc in these version often
misaligns allocated memory which can crash numpy when using float128 values.

New np.take_along_axis and np.put_along_axis functions

When used on multidimensional arrays, argsort, argmin, argmax, and
argpartition return arrays that are difficult to use as indices.
take_along_axis provides an easy way to use these indices to lookup values
within an array, so that::

np.take_along_axis(a, np.argsort(a, axis=axis), axis=axis)

is the same as::

np.sort(a, axis=axis)

np.put_along_axis acts as the dual operation for writing to these indices
within an array.

Checksums

MD5

4957a50c1125fdecb4cb51829f5feba1  numpy-1.15.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d5ffa73c6a3eeba8cfcab283e7db3c2f  numpy-1.15.0-cp27-cp27m-manylinux1_i686.whl
a6f7aa33d4d1598dc33831a4bb36570d  numpy-1.15.0-cp27-cp27m-manylinux1_x86_64.whl
cbdd2291782deb29f41c9b7d121264e0  numpy-1.15.0-cp27-cp27mu-manylinux1_i686.whl
0bd79da73435161850099bfcacc75fae  numpy-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl
73f930c046ac09e518d0b4cf2f8ff642  numpy-1.15.0-cp27-none-win32.whl
7ba5b463728a792dced42fd6259e511f  numpy-1.15.0-cp27-none-win_amd64.whl
badfc9f713510d59f478037c88b3d963  numpy-1.15.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
662f2536cac7b841f86e9b7488e52371  numpy-1.15.0-cp34-cp34m-manylinux1_i686.whl
346d9239f7f12bb7042f8bc847928dc1  numpy-1.15.0-cp34-cp34m-manylinux1_x86_64.whl
fd03012584359cd05cee08408df5897d  numpy-1.15.0-cp34-none-win32.whl
1032db03cefd82e87f72f2b04b15b7ae  numpy-1.15.0-cp34-none-win_amd64.whl
cc463ee62af94c8410fdf95ce9933c3c  numpy-1.15.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
77655199a4e18719dd5a0b348c44fc92  numpy-1.15.0-cp35-cp35m-manylinux1_i686.whl
d76c54272549cf3a2165d40d3fea5e30  numpy-1.15.0-cp35-cp35m-manylinux1_x86_64.whl
956c6f7c216b677b27628a97150cd069  numpy-1.15.0-cp35-none-win32.whl
2ab8080576932775167a6f9c772b91e4  numpy-1.15.0-cp35-none-win_amd64.whl
1a01c8d089d488565acc2836d03a7482  numpy-1.15.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
5606fa1c1e13e789b802102699d613e2  numpy-1.15.0-cp36-cp36m-manylinux1_i686.whl
5635343a70f7cdd17f372966db1526d3  numpy-1.15.0-cp36-cp36m-manylinux1_x86_64.whl
166e901c1a86da5ffb8c6d3090ed917e  numpy-1.15.0-cp36-none-win32.whl
6423497ad5a610c1deed606ce44893bd  numpy-1.15.0-cp36-none-win_amd64.whl
e232fbba29585812bf7fa547f671b768  numpy-1.15.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b2fc4551651fae84eb01b8a37f2e1e69  numpy-1.15.0-cp37-cp37m-manylinux1_i686.whl
36ed60bef7c5cb252b9d0e8dc5029e08  numpy-1.15.0-cp37-cp37m-manylinux1_x86_64.whl
4482a89fa4540c8bbf76028621931266  numpy-1.15.0-cp37-none-win32.whl
cfef18ee246468752f1686147c70bd0a  numpy-1.15.0-cp37-none-win_amd64.whl
5cf4daff88042326334266f80ad38884  numpy-1.15.0.tar.gz
20e13185089011116a98e11c9bf8aa07  numpy-1.15.0.zip

SHA256

a17a8fd5df4fec5b56b4d11c9ba8b9ebfb883c90ec361628d07be00aaa4f009a  numpy-1.15.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c3ac359ace241707e5a48fe2922e566ac666aacacf4f8031f2994ac429c31344  numpy-1.15.0-cp27-cp27m-manylinux1_i686.whl
e2317cf091c2e7f0dacdc2e72c693cc34403ca1f8e3807622d0bb653dc978616  numpy-1.15.0-cp27-cp27m-manylinux1_x86_64.whl
64c6acf5175745fd1b7b7e17c74fdbfb7191af3b378bc54f44560279f41238d3  numpy-1.15.0-cp27-cp27mu-manylinux1_i686.whl
924f37e66db78464b4b85ed4b6d2e5cda0c0416e657cac7ccbef14b9fa2c40b5  numpy-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl
674ea7917f0657ddb6976bd102ac341bc493d072c32a59b98e5b8c6eaa2d5ec0  numpy-1.15.0-cp27-none-win32.whl
ae3864816287d0e86ead580b69921daec568fe680857f07ee2a87bf7fd77ce24  numpy-1.15.0-cp27-none-win_amd64.whl
78c35dc7ad184aebf3714dbf43f054714c6e430e14b9c06c49a864fb9e262030  numpy-1.15.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c7c660cc0209fdf29a4e50146ca9ac9d8664acaded6b6ae2f5d0ae2e91a0f0cd  numpy-1.15.0-cp34-cp34m-manylinux1_i686.whl
3fbccb399fe9095b1c1d7b41e7c7867db8aa0d2347fc44c87a7a180cedda112b  numpy-1.15.0-cp34-cp34m-manylinux1_x86_64.whl
aaa519335a71f87217ca8a680c3b66b61960e148407bdf5c209c42f50fe30f49  numpy-1.15.0-cp34-none-win32.whl
62cb836506f40ce2529bfba9d09edc4b2687dd18c56cf4457e51c3e7145402fd  numpy-1.15.0-cp34-none-win_amd64.whl
55daf757e5f69aa75b4477cf4511bf1f96325c730e4ad32d954ccb593acd2585  numpy-1.15.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b5f8c15cb9173f6cdf0f994955e58d1265331029ae26296232379461a297e5f2  numpy-1.15.0-cp35-cp35m-manylinux1_i686.whl
24f3bb9a5f6c3936a8ccd4ddfc1210d9511f4aeb879a12efd2e80bec647b8695  numpy-1.15.0-cp35-cp35m-manylinux1_x86_64.whl
34033b581bc01b1135ca2e3e93a94daea7c739f21a97a75cca93e29d9f0c8e71  numpy-1.15.0-cp35-none-win32.whl
f5a758252502b466b9c2b201ea397dae5a914336c987f3a76c3741a82d43c96e  numpy-1.15.0-cp35-none-win_amd64.whl
14fb76bde161c87dcec52d91c78f65aa8a23aa2e1530a71f412dabe03927d917  numpy-1.15.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
816645178f2180be257a576b735d3ae245b1982280b97ae819550ce8bcdf2b6b  numpy-1.15.0-cp36-cp36m-manylinux1_i686.whl
f2a778dd9bb3e4590dbe3bbac28e7c7134280c4ec97e3bf8678170ee58c67b21  numpy-1.15.0-cp36-cp36m-manylinux1_x86_64.whl
7f17efe9605444fcbfd990ba9b03371552d65a3c259fc2d258c24fb95afdd728  numpy-1.15.0-cp36-none-win32.whl
73a816e441dace289302e04a7a34ec4772ed234ab6885c968e3ca2fc2d06fe2d  numpy-1.15.0-cp36-none-win_amd64.whl
21041014b7529237994a6b578701c585703fbb3b1bea356cdb12a5ea7804241c  numpy-1.15.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d690a2ff49f6c3bc35336693c9924fe5916be3cc0503fe1ea6c7e2bf951409ee  numpy-1.15.0-cp37-cp37m-manylinux1_i686.whl
50718eea8e77a1bedcc85befd22c8dbf5a24c9d2c0c1e36bbb8d7a38da847eb3  numpy-1.15.0-cp37-cp37m-manylinux1_x86_64.whl
fb4c33a404d9eff49a0cdc8ead0af6453f62f19e071b60d283f9dc05581e4134  numpy-1.15.0-cp37-none-win32.whl
61efc65f325770bbe787f34e00607bc124f08e6c25fdf04723848585e81560dc  numpy-1.15.0-cp37-none-win_amd64.whl
259934a941663e93fdd5d28ce3f6aa2a81ce7dda85c395dd07b1f1edff2e0236  numpy-1.15.0.tar.gz
f28e73cf18d37a413f7d5de35d024e6b98f14566a10d82100f9dc491a7d449f9  numpy-1.15.0.zip
numpy -

Published by charris over 6 years ago

==========================
NumPy 1.15.0 Release Notes

NumPy 1.15.0 is a release with an unusual number of cleanups, many deprecations
of old functions, and improvements to many existing functions. Please read the
detailed descriptions below to see if you are affected.

For testing, we have switched to pytest as a replacement for the no longer
maintained nose framework. The old nose based interface remains for downstream
projects who may still be using it.

The Python versions supported by this release are 2.7, 3.4-3.7. The wheels are
linked with OpenBLAS v0.3.0, which should fix some of the linalg problems
reported for NumPy 1.14.

Highlights

  • NumPy has switched to pytest for testing.
  • A new numpy.printoptions context manager.
  • Many improvements to the histogram functions.
  • Support for unicode field names in python 2.7.
  • Improved support for PyPy.
  • Fixes and improvements to numpy.einsum.

New functions

  • numpy.gcd and numpy.lcm, to compute the greatest common divisor and least
    common multiple.

  • numpy.ma.stack, the numpy.stack array-joining function generalized to
    masked arrays.

  • numpy.quantile function, an interface to percentile without factors of
    100

  • numpy.nanquantile function, an interface to nanpercentile without
    factors of 100

  • numpy.printoptions, a context manager that sets print options temporarily
    for the scope of the with block::

    with np.printoptions(precision=2):
    ... print(np.array([2.0]) / 3)
    [0.67]

  • numpy.histogram_bin_edges, a function to get the edges of the bins used by a
    histogram without needing to calculate the histogram.

  • C functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added to deal with compiler optimization changing the order of
    operations. See below for details.

Deprecations

  • Aliases of builtin pickle functions are deprecated, in favor of their
    unaliased pickle.<func> names:

    • numpy.loads
    • numpy.core.numeric.load
    • numpy.core.numeric.loads
    • numpy.ma.loads, numpy.ma.dumps
    • numpy.ma.load, numpy.ma.dump - these functions already failed on
      python 3 when called with a string.
  • Multidimensional indexing with anything but a tuple is deprecated. This means
    that the index list in ind = [slice(None), 0]; arr[ind] should be changed
    to a tuple, e.g., ind = [slice(None), 0]; arr[tuple(ind)] or
    arr[(slice(None), 0)]. That change is necessary to avoid ambiguity in
    expressions such as arr[[[0, 1], [0, 1]]], currently interpreted as
    arr[array([0, 1]), array([0, 1])], that will be interpreted
    as arr[array([[0, 1], [0, 1]])] in the future.

  • Imports from the following sub-modules are deprecated, they will be removed
    at some future date.

    • numpy.testing.utils
    • numpy.testing.decorators
    • numpy.testing.nosetester
    • numpy.testing.noseclasses
    • numpy.core.umath_tests
  • Giving a generator to numpy.sum is now deprecated. This was undocumented
    behavior, but worked. Previously, it would calculate the sum of the generator
    expression. In the future, it might return a different result. Use
    np.sum(np.from_iter(generator)) or the built-in Python sum instead.

  • Users of the C-API should call PyArrayResolveWriteBackIfCopy or
    PyArray_DiscardWritbackIfCopy on any array with the WRITEBACKIFCOPY
    flag set, before deallocating the array. A deprecation warning will be
    emitted if those calls are not used when needed.

  • Users of nditer should use the nditer object as a context manager
    anytime one of the iterator operands is writeable, so that numpy can
    manage writeback semantics, or should call it.close(). A
    RuntimeWarning may be emitted otherwise in these cases.

  • The normed argument of np.histogram, deprecated long ago in 1.6.0,
    now emits a DeprecationWarning.

Future Changes

  • NumPy 1.16 will drop support for Python 3.4.
  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

Compiled testing modules renamed and made private

The following compiled modules have been renamed and made private:

  • umath_tests -> _umath_tests
  • test_rational -> _rational_tests
  • multiarray_tests -> _multiarray_tests
  • struct_ufunc_test -> _struct_ufunc_tests
  • operand_flag_tests -> _operand_flag_tests

The umath_tests module is still available for backwards compatibility, but
will be removed in the future.

The NpzFile returned by np.savez is now a collections.abc.Mapping

This means it behaves like a readonly dictionary, and has a new .values()
method and len() implementation.

For python 3, this means that .iteritems(), .iterkeys() have been
deprecated, and .keys() and .items() now return views and not lists.
This is consistent with how the builtin dict type changed between python 2
and python 3.

Under certain conditions, nditer must be used in a context manager

When using an numpy.nditer with the "writeonly" or "readwrite" flags, there
are some circumstances where nditer doesn't actually give you a view of the
writable array. Instead, it gives you a copy, and if you make changes to the
copy, nditer later writes those changes back into your actual array. Currently,
this writeback occurs when the array objects are garbage collected, which makes
this API error-prone on CPython and entirely broken on PyPy. Therefore,
nditer should now be used as a context manager whenever it is used
with writeable arrays, e.g., with np.nditer(...) as it: .... You may also
explicitly call it.close() for cases where a context manager is unusable,
for instance in generator expressions.

Numpy has switched to using pytest instead of nose for testing

The last nose release was 1.3.7 in June, 2015, and development of that tool has
ended, consequently NumPy has now switched to using pytest. The old decorators
and nose tools that were previously used by some downstream projects remain
available, but will not be maintained. The standard testing utilities,
assert_almost_equal and such, are not be affected by this change except for
the nose specific functions import_nose and raises. Those functions are
not used in numpy, but are kept for downstream compatibility.

Numpy no longer monkey-patches ctypes with __array_interface__

Previously numpy added __array_interface__ attributes to all the integer
types from ctypes.

np.ma.notmasked_contiguous and np.ma.flatnotmasked_contiguous always return lists

This is the documented behavior, but previously the result could be any of
slice, None, or list.

All downstream users seem to check for the None result from
flatnotmasked_contiguous and replace it with []. Those callers will
continue to work as before.

np.squeeze restores old behavior of objects that cannot handle an axis argument

Prior to version 1.7.0, numpy.squeeze did not have an axis argument and
all empty axes were removed by default. The incorporation of an axis
argument made it possible to selectively squeeze single or multiple empty axes,
but the old API expectation was not respected because axes could still be
selectively removed (silent success) from an object expecting all empty axes to
be removed. That silent, selective removal of empty axes for objects expecting
the old behavior has been fixed and the old behavior restored.

unstructured void array's .item method now returns a bytes object

.item now returns a bytes object instead of a buffer or byte array.
This may affect code which assumed the return value was mutable, which is no
longer the case.

copy.copy and copy.deepcopy no longer turn masked into an array

Since np.ma.masked is a readonly scalar, copying should be a no-op. These
functions now behave consistently with np.copy().

Multifield Indexing of Structured Arrays will still return a copy

The change that multi-field indexing of structured arrays returns a view
instead of a copy is pushed back to 1.16. A new method
numpy.lib.recfunctions.repack_fields has been introduced to help mitigate
the effects of this change, which can be used to write code compatible with
both numpy 1.15 and 1.16. For more information on how to update code to account
for this future change see the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html>__.

C API changes

New functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier

Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
have been added and should be used in place of the npy_get_floatstatusand
npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
were rearranging the order of operations when the previous functions were used
in the ufunc SIMD functions, resulting in the floatstatus flags being checked
before the operation whose status we wanted to check was run. See #10339 <https://github.com/numpy/numpy/issues/10370>__.

Changes to PyArray_GetDTypeTransferFunction

PyArray_GetDTypeTransferFunction now defaults to using user-defined
copyswapn / copyswap for user-defined dtypes. If this causes a
significant performance hit, consider implementing copyswapn to reflect the
implementation of PyArray_GetStridedCopyFn. See #10898 <https://github.com/numpy/numpy/pull/10898>__.

  • Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added and should be used in place of the npy_get_floatstatusand
    npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
    were rearranging the order of operations when the previous functions were
    used in the ufunc SIMD functions, resulting in the floatstatus flags being '
    checked before the operation whose status we wanted to check was run.
    See #10339 <https://github.com/numpy/numpy/issues/10370>__.

New Features

np.gcd and np.lcm ufuncs added for integer and objects types

These compute the greatest common divisor, and lowest common multiple,
respectively. These work on all the numpy integer types, as well as the
builtin arbitrary-precision Decimal and long types.

Support for cross-platform builds for iOS

The build system has been modified to add support for the
_PYTHON_HOST_PLATFORM environment variable, used by distutils when
compiling on one platform for another platform. This makes it possible to
compile NumPy for iOS targets.

This only enables you to compile NumPy for one specific platform at a time.
Creating a full iOS-compatible NumPy package requires building for the 5
architectures supported by iOS (i386, x86_64, armv7, armv7s and arm64), and
combining these 5 compiled builds products into a single "fat" binary.

return_indices keyword added for np.intersect1d

New keyword return_indices returns the indices of the two input arrays
that correspond to the common elements.

np.quantile and np.nanquantile

Like np.percentile and np.nanpercentile, but takes quantiles in [0, 1]
rather than percentiles in [0, 100]. np.percentile is now a thin wrapper
around np.quantile with the extra step of dividing by 100.

Build system

Added experimental support for the 64-bit RISC-V architecture.

Improvements

np.einsum updates

Syncs einsum path optimization tech between numpy and opt_einsum. In
particular, the greedy path has received many enhancements by @jcmgray. A
full list of issues fixed are:

  • Arbitrary memory can be passed into the greedy path. Fixes gh-11210.
  • The greedy path has been updated to contain more dynamic programming ideas
    preventing a large number of duplicate (and expensive) calls that figure out
    the actual pair contraction that takes place. Now takes a few seconds on
    several hundred input tensors. Useful for matrix product state theories.
  • Reworks the broadcasting dot error catching found in gh-11218 gh-10352 to be
    a bit earlier in the process.
  • Enhances the can_dot functionality that previous missed an edge case (part
    of gh-11308).

np.ufunc.reduce and related functions now accept an initial value

np.ufunc.reduce, np.sum, np.prod, np.min and np.max all
now accept an initial keyword argument that specifies the value to start
the reduction with.

np.flip can operate over multiple axes

np.flip now accepts None, or tuples of int, in its axis argument. If
axis is None, it will flip over all the axes.

histogram and histogramdd functions have moved to np.lib.histograms

These were originally found in np.lib.function_base. They are still
available under their un-scoped np.histogram(dd) names, and
to maintain compatibility, aliased at np.lib.function_base.histogram(dd).

Code that does from np.lib.function_base import * will need to be updated
with the new location, and should consider not using import * in future.

histogram will accept NaN values when explicit bins are given

Previously it would fail when trying to compute a finite range for the data.
Since the range is ignored anyway when the bins are given explicitly, this error
was needless.

Note that calling histogram on NaN values continues to raise the
RuntimeWarning s typical of working with nan values, which can be silenced
as usual with errstate.

histogram works on datetime types, when explicit bin edges are given

Dates, times, and timedeltas can now be histogrammed. The bin edges must be
passed explicitly, and are not yet computed automatically.

histogram "auto" estimator handles limited variance better

No longer does an IQR of 0 result in n_bins=1, rather the number of bins
chosen is related to the data size in this situation.

The edges retuned by `histogramandhistogramdd`` now match the data float type

When passed np.float16, np.float32, or np.longdouble data, the
returned edges are now of the same dtype. Previously, histogram would only
return the same type if explicit bins were given, and histogram would
produce float64 bins no matter what the inputs.

histogramdd allows explicit ranges to be given in a subset of axes

The range argument of numpy.histogramdd can now contain None values to
indicate that the range for the corresponding axis should be computed from the
data. Previously, this could not be specified on a per-axis basis.

The normed arguments of histogramdd and histogram2d have been renamed

These arguments are now called density, which is consistent with
histogram. The old argument continues to work, but the new name should be
preferred.

np.r_ works with 0d arrays, and np.ma.mr_ works with np.ma.masked

0d arrays passed to the r_ and mr_ concatenation helpers are now treated as
though they are arrays of length 1. Previously, passing these was an error.
As a result, numpy.ma.mr_ now works correctly on the masked constant.

np.ptp accepts a keepdims argument, and extended axis tuples

np.ptp (peak-to-peak) can now work over multiple axes, just like np.max
and np.min.

MaskedArray.astype now is identical to ndarray.astype

This means it takes all the same arguments, making more code written for
ndarray work for masked array too.

Enable AVX2/AVX512 at compile time

Change to simd.inc.src to allow use of AVX2 or AVX512 at compile time. Previously
compilation for avx2 (or 512) with -march=native would still use the SSE
code for the simd functions even when the rest of the code got AVX2.

nan_to_num always returns scalars when receiving scalar or 0d inputs

Previously an array was returned for integer scalar inputs, which is
inconsistent with the behavior for float inputs, and that of ufuncs in general.
For all types of scalar or 0d input, the result is now a scalar.

np.flatnonzero works on numpy-convertible types

np.flatnonzero now uses np.ravel(a) instead of a.ravel(), so it
works for lists, tuples, etc.

np.interp returns numpy scalars rather than builtin scalars

Previously np.interp(0.5, [0, 1], [10, 20]) would return a float, but
now it returns a np.float64 object, which more closely matches the behavior
of other functions.

Additionally, the special case of np.interp(object_array_0d, ...) is no
longer supported, as np.interp(object_array_nd) was never supported anyway.

As a result of this change, the period argument can now be used on 0d
arrays.

Allow dtype field names to be unicode in Python 2

Previously np.dtype([(u'name', float)]) would raise a TypeError in
Python 2, as only bytestrings were allowed in field names. Now any unicode
string field names will be encoded with the ascii codec, raising a
UnicodeEncodeError upon failure.

This change makes it easier to write Python 2/3 compatible code using
from __future__ import unicode_literals, which previously would cause
string literal field names to raise a TypeError in Python 2.

Comparison ufuncs accept dtype=object, overriding the default bool

This allows object arrays of symbolic types, which override == and other
operators to return expressions, to be compared elementwise with
np.equal(a, b, dtype=object).

sort functions accept kind='stable'

Up until now, to perform a stable sort on the data, the user must do:

>>> np.sort([5, 2, 6, 2, 1], kind='mergesort')
[1, 2, 2, 5, 6]

because merge sort is the only stable sorting algorithm available in
NumPy. However, having kind='mergesort' does not make it explicit that
the user wants to perform a stable sort thus harming the readability.

This change allows the user to specify kind='stable' thus clarifying
the intent.

Do not make temporary copies for in-place accumulation

When ufuncs perform accumulation they no longer make temporary copies because
of the overlap between input an output, that is, the next element accumulated
is added before the accumulated result is stored in its place, hence the
overlap is safe. Avoiding the copy results in faster execution.

linalg.matrix_power can now handle stacks of matrices

Like other functions in linalg, matrix_power can now deal with arrays
of dimension larger than 2, which are treated as stacks of matrices. As part
of the change, to further improve consistency, the name of the first argument
has been changed to a (from M), and the exceptions for non-square
matrices have been changed to LinAlgError (from ValueError).

Increased performance in random.permutation for multidimensional arrays

permutation uses the fast path in random.shuffle for all input
array dimensions. Previously the fast path was only used for 1-d arrays.

Generalized ufuncs now accept axes, axis and keepdims arguments

One can control over which axes a generalized ufunc operates by passing in an
axes argument, a list of tuples with indices of particular axes. For
instance, for a signature of (i,j),(j,k)->(i,k) appropriate for matrix
multiplication, the base elements are two-dimensional matrices and these are
taken to be stored in the two last axes of each argument. The corresponding
axes keyword would be [(-2, -1), (-2, -1), (-2, -1)]. If one wanted to
use leading dimensions instead, one would pass in [(0, 1), (0, 1), (0, 1)].

For simplicity, for generalized ufuncs that operate on 1-dimensional arrays
(vectors), a single integer is accepted instead of a single-element tuple, and
for generalized ufuncs for which all outputs are scalars, the (empty) output
tuples can be omitted. Hence, for a signature of (i),(i)->() appropriate
for an inner product, one could pass in axes=[0, 0] to indicate that the
vectors are stored in the first dimensions of the two inputs arguments.

As a short-cut for generalized ufuncs that are similar to reductions, i.e.,
that act on a single, shared core dimension such as the inner product example
above, one can pass an axis argument. This is equivalent to passing in
axes with identical entries for all arguments with that core dimension
(e.g., for the example above, axes=[(axis,), (axis,)]).

Furthermore, like for reductions, for generalized ufuncs that have inputs that
all have the same number of core dimensions and outputs with no core dimension,
one can pass in keepdims to leave a dimension with size 1 in the outputs,
thus allowing proper broadcasting against the original inputs. The location of
the extra dimension can be controlled with axes. For instance, for the
inner-product example, keepdims=True, axes=[-2, -2, -2] would act on the
inner-product example, keepdims=True, axis=-2 would act on the
one-but-last dimension of the input arguments, and leave a size 1 dimension in
that place in the output.

float128 values now print correctly on ppc systems

Previously printing float128 values was buggy on ppc, since the special
double-double floating-point-format on these systems was not accounted for.
float128s now print with correct rounding and uniqueness.

Warning to ppc users: You should upgrade glibc if it is version <=2.23,
especially if using float128. On ppc, glibc's malloc in these version often
misaligns allocated memory which can crash numpy when using float128 values.

New np.take_along_axis and np.put_along_axis functions

When used on multidimensional arrays, argsort, argmin, argmax, and
argpartition return arrays that are difficult to use as indices.
take_along_axis provides an easy way to use these indices to lookup values
within an array, so that::

np.take_along_axis(a, np.argsort(a, axis=axis), axis=axis)

is the same as::

np.sort(a, axis=axis)

np.put_along_axis acts as the dual operation for writing to these indices
within an array.

Checksums

MD5

8316260e8887fc8bcf5f0b05f63c5019  numpy-1.15.0rc2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
2891ad8dbc338eba71726d460542a081  numpy-1.15.0rc2-cp27-cp27m-manylinux1_i686.whl
6d222985f3f97c5e2fc1153eb8373808  numpy-1.15.0rc2-cp27-cp27m-manylinux1_x86_64.whl
a07824b238cfb6a28997802e5196b59a  numpy-1.15.0rc2-cp27-cp27mu-manylinux1_i686.whl
bdcdf5b7af86c3c9e7986443f958088a  numpy-1.15.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
03402a54a4160992470418bb2d8b80ce  numpy-1.15.0rc2-cp27-none-win32.whl
8d43fa19d44eb1984103a3d6a36ca1d8  numpy-1.15.0rc2-cp27-none-win_amd64.whl
584955fb44be27fdeb98403fc7377570  numpy-1.15.0rc2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
85f2e7d543d164fbd3fd8eaebc8e37b0  numpy-1.15.0rc2-cp34-cp34m-manylinux1_i686.whl
305290d750a6d3d6b0730faac3bdd918  numpy-1.15.0rc2-cp34-cp34m-manylinux1_x86_64.whl
ca67388f3ab2de181caaf35b219e4bb0  numpy-1.15.0rc2-cp34-none-win32.whl
112a63e88d58a841e286015f213246e5  numpy-1.15.0rc2-cp34-none-win_amd64.whl
fd8aa9b7261e96694546956f6580e930  numpy-1.15.0rc2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a95d9721714724c129a804d37e226b8c  numpy-1.15.0rc2-cp35-cp35m-manylinux1_i686.whl
199229506044c8d47b8dba19a093c7a6  numpy-1.15.0rc2-cp35-cp35m-manylinux1_x86_64.whl
cd560aae25afd852181a9f89c82eecac  numpy-1.15.0rc2-cp35-none-win32.whl
981140d5b42ad1457ddff565576073a3  numpy-1.15.0rc2-cp35-none-win_amd64.whl
1b83a71e5021a582d9f77427394c36e1  numpy-1.15.0rc2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
791f0204b92772284472af1769ecbcba  numpy-1.15.0rc2-cp36-cp36m-manylinux1_i686.whl
24679506658bee564e9c4c96de5cffaf  numpy-1.15.0rc2-cp36-cp36m-manylinux1_x86_64.whl
daeb5f3144795c51039f79fdf15da10d  numpy-1.15.0rc2-cp36-none-win32.whl
8a32e40e2d2a82bb86a2887fe7b72120  numpy-1.15.0rc2-cp36-none-win_amd64.whl
a6856a9ee8e6faae5d6d7424029d5390  numpy-1.15.0rc2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
566a8a2fd66be5fec607254abdc001be  numpy-1.15.0rc2-cp37-cp37m-manylinux1_i686.whl
ed94c261b602b88fabd9de497adfe461  numpy-1.15.0rc2-cp37-cp37m-manylinux1_x86_64.whl
6045f7e99b4e29ec5e5255aafafa9546  numpy-1.15.0rc2-cp37-none-win32.whl
d0cafbac87ba71cea7b3617931f1a71e  numpy-1.15.0rc2-cp37-none-win_amd64.whl
c2e3c18e470506059b44e50d5153609a  numpy-1.15.0rc2.tar.gz
1709c599dcc04f37316df85df451b3d9  numpy-1.15.0rc2.zip

SHA256

5e4f9a3ea77cfeae16e1227ddd887c33b24dcc38e90add9630d71bd3ad96c13a  numpy-1.15.0rc2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
8d1f49ea7f50aeddbe5bead5af75aba20e15237908aedc6f35e3cd8548372783  numpy-1.15.0rc2-cp27-cp27m-manylinux1_i686.whl
28cb017a0502e46d27a1f4af25c199e4609e3193c1f39b24b4a677d7a737f477  numpy-1.15.0rc2-cp27-cp27m-manylinux1_x86_64.whl
8c02ccade177d82a366dba221eb6fcc85f63c3147817526883084c8b50aba471  numpy-1.15.0rc2-cp27-cp27mu-manylinux1_i686.whl
bc2073c9a97821b8bbf8cc58a3480aaf5897ee3c812427410aa03bd0615ed24e  numpy-1.15.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
316122b90b48dc7cd93232b8d0e6b82d73ef34e18f96d9c4d49f7be3f2b86759  numpy-1.15.0rc2-cp27-none-win32.whl
e2c57051f9126291b82043aefd01aa3f3523a7db27f20f6e0959e02983ee601f  numpy-1.15.0rc2-cp27-none-win_amd64.whl
04847c434f6a9dce1785f4f6adf6d15d057677ec86ad7139e089f505040fc02f  numpy-1.15.0rc2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
714b87ffc1cb76eb658898f0105cfec673615458b472f0c838a69d1de28ddaaf  numpy-1.15.0rc2-cp34-cp34m-manylinux1_i686.whl
8ddb2abf160e25b1c0a0dd648c686332c33d52df88eb7ed1df248eb25ffd2191  numpy-1.15.0rc2-cp34-cp34m-manylinux1_x86_64.whl
558e102282d330234cfcc1b68e163e9ceb5baac26585a5506fd12c8ae406e0d2  numpy-1.15.0rc2-cp34-none-win32.whl
7db1973b8dd352a923c875c522c3f414c3e286fd12278e806ad635430cf7e906  numpy-1.15.0rc2-cp34-none-win_amd64.whl
8c962a352744e1f1df47665d12c24b59a8f30d6c1c492b6a1fb0a4be5a1a383c  numpy-1.15.0rc2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3f9fa0257a0aab9ec18a205b3d5a10bf6c727913065d62fa61344604729559f4  numpy-1.15.0rc2-cp35-cp35m-manylinux1_i686.whl
79049cfc7222de51bd8f58eddcd99196851a0401d91a82df293c6e9451b44b3e  numpy-1.15.0rc2-cp35-cp35m-manylinux1_x86_64.whl
0014321634f10f96f135b25183eaaa7fe595067534374f8ba80b9099ca90d74e  numpy-1.15.0rc2-cp35-none-win32.whl
b12e5339885f291ff42c308aa1e0dd643899e2df73fa96b41121e2a921a0ac08  numpy-1.15.0rc2-cp35-none-win_amd64.whl
1a10572879d88786303e6ba12a9045b44a08d796b81a4fed3eaaaffa055c3730  numpy-1.15.0rc2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
2d2a599d500e1654a8b1ee6e2ff255a8b6a2aff432bed1507a43f0adce2d0793  numpy-1.15.0rc2-cp36-cp36m-manylinux1_i686.whl
c8d1495be39a8f04ebf0dd6ef9a0c6818d68f572da884b9b8e860cff99066701  numpy-1.15.0rc2-cp36-cp36m-manylinux1_x86_64.whl
8a858dc23e49ae8cc4f8a9ee4806e2a271c4fb897c88ffcc1e72407e6331ec43  numpy-1.15.0rc2-cp36-none-win32.whl
4f20759b5244e80a063aa2224d8fe7a14802572d6a96ebd95a13ba72b6d3d5cc  numpy-1.15.0rc2-cp36-none-win_amd64.whl
0a1d8a25093527532109405482522e61eaa77d5618897a5783beeb0f04d27de8  numpy-1.15.0rc2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c3a0fee0fa2228288cfd0f5dc63f529dac46791fa8f489d3ad2ef99a3e2f37bd  numpy-1.15.0rc2-cp37-cp37m-manylinux1_i686.whl
5227554a410cf6dbefb76f63b53381a4761cf8c9e9ca2f0e3bab6a27110ef9c6  numpy-1.15.0rc2-cp37-cp37m-manylinux1_x86_64.whl
67005ca9a63c65d7bef2c9200bc15165dee30b7c977fe1d8eef1c78f3270d3e5  numpy-1.15.0rc2-cp37-none-win32.whl
9886b43c330e122855b8b6573db8444dd0fe5a4b407f156f08305b7b441a564d  numpy-1.15.0rc2-cp37-none-win_amd64.whl
917faceae30edd62f29a9cc16a6f70200fa07ae15228f3eda3d4555e16285484  numpy-1.15.0rc2.tar.gz
e402d58467cec78c6fd7f60bacf7105bf31e2b863e4982bdf6b3c8f9d6ca9b23  numpy-1.15.0rc2.zip
numpy -

Published by charris over 6 years ago

==========================
NumPy 1.15.0 Release Notes

NumPy 1.15.0 is a release with an unusual number of cleanups, many deprecations
of old functions, and improvements to many existing functions. Please read the
detailed descriptions below to see if you are affected.

For testing, we have switched to pytest as a replacement for the no longer
maintained nose framework. The old nose based interface remains for downstream
projects who may still be using it.

The Python versions supported by this release are 2.7, 3.4-3.6. The upcoming
3.7 release should also work, but you will need to compile from source using
Cython 0.28.2 or later. The wheels will be linked with OpenBLAS 3.0, which
should fix some of the linalg problems reported for NumPy 1.14.

Highlights

  • NumPy has switched to pytest for testing.
  • A new numpy.printoptions context manager.
  • Many improvements to the histogram functions.
  • Support for unicode field names in python 2.7.
  • Improved support for PyPy.

New functions

  • numpy.gcd and numpy.lcm, to compute the greatest common divisor and least
    common multiple.

  • numpy.ma.stack, the numpy.stack array-joining function generalized to
    masked arrays.

  • numpy.quantile function, an interface to percentile without factors of
    100

  • numpy.nanquantile function, an interface to nanpercentile without
    factors of 100

  • numpy.printoptions, a context manager that sets print options temporarily
    for the scope of the with block::

    with np.printoptions(precision=2):
    ... print(np.array([2.0]) / 3)
    [0.67]

  • numpy.histogram_bin_edges, a function to get the edges of the bins used by a
    histogram without needing to calculate the histogram.

  • C functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added to deal with compiler optimization changing the order of
    operations. See below for details.

Deprecations

  • Aliases of builtin pickle functions are deprecated, in favor of their
    unaliased pickle.<func> names:

    • numpy.loads
    • numpy.core.numeric.load
    • numpy.core.numeric.loads
    • numpy.ma.loads, numpy.ma.dumps
    • numpy.ma.load, numpy.ma.dump - these functions already failed on
      python 3 when called with a string.
  • Multidimensional indexing with anything but a tuple is deprecated. This means
    that the index list in ind = [slice(None), 0]; arr[ind] should be changed
    to a tuple, e.g., ind = [slice(None), 0]; arr[tuple(ind)] or
    arr[(slice(None), 0)]. That change is necessary to avoid ambiguity in
    expressions such as arr[[[0, 1], [0, 1]]], currently interpreted as
    arr[array([0, 1]), array([0, 1])], that will be interpreted
    as arr[array([[0, 1], [0, 1]])] in the future.

  • Imports from the following sub-modules are deprecated, they will be removed
    at some future date.

    • numpy.testing.utils
    • numpy.testing.decorators
    • numpy.testing.nosetester
    • numpy.testing.noseclasses
    • numpy.core.umath_tests
  • Giving a generator to numpy.sum is now deprecated. This was undocumented
    behavior, but worked. Previously, it would calculate the sum of the generator
    expression. In the future, it might return a different result. Use
    np.sum(np.from_iter(generator)) or the built-in Python sum instead.

  • Users of the C-API should call PyArrayResolveWriteBackIfCopy or
    PyArray_DiscardWritbackIfCopy on any array with the WRITEBACKIFCOPY
    flag set, before deallocating the array. A deprecation warning will be
    emitted if those calls are not used when needed.

  • Users of numpy.nditer should use the nditer object as a context manager
    whenever one of the iterator operands is writeable so that numpy can manage
    writeback semantics, or alternately, one can call it.close() to trigger a
    writeback. A RuntimeWarning will otherwise be raised in those cases. Users
    of the C-API should call NpyIter_Close before NpyIter_Deallocate.

  • Users of nditer should use the nditer object as a context manager
    anytime one of the iterator operands is writeable, so that numpy can
    manage writeback semantics, or should call it.close(). A
    RuntimeWarning may be emitted otherwise in these cases.

  • The normed argument of np.histogram, deprecated long ago in 1.6.0,
    now emits a DeprecationWarning.

Future Changes

  • NumPy 1.16 will drop support for Python 3.4.
  • NumPy 1.17 will drop support for Python 2.7.

Compatibility notes

Compiled testing modules renamed and made private

The following compiled modules have been renamed and made private:

  • umath_tests -> _umath_tests
  • test_rational -> _rational_tests
  • multiarray_tests -> _multiarray_tests
  • struct_ufunc_test -> _struct_ufunc_tests
  • operand_flag_tests -> _operand_flag_tests

The umath_tests module is still available for backwards compatibility, but
will be removed in the future.

The NpzFile returned by np.savez is now a collections.abc.Mapping

This means it behaves like a readonly dictionary, and has a new .values()
method and len() implementation.

For python 3, this means that .iteritems(), .iterkeys() have been
deprecated, and .keys() and .items() now return views and not lists.
This is consistent with how the builtin dict type changed between python 2
and python 3.

Under certain conditions, nditer must be used in a context manager

When using an numpy.nditer with the "writeonly" or "readwrite" flags, there
are some circumstances where nditer doesn't actually give you a view of the
writable array. Instead, it gives you a copy, and if you make changes to the
copy, nditer later writes those changes back into your actual array. Currently,
this writeback occurs when the array objects are garbage collected, which makes
this API error-prone on CPython and entirely broken on PyPy. Therefore,
nditer should now be used as a context manager whenever it is used
with writeable arrays, e.g., with np.nditer(...) as it: .... You may also
explicitly call it.close() for cases where a context manager is unusable,
for instance in generator expressions.

Numpy has switched to using pytest instead of nose for testing

The last nose release was 1.3.7 in June, 2015, and development of that tool has
ended, consequently NumPy has now switched to using pytest. The old decorators
and nose tools that were previously used by some downstream projects remain
available, but will not be maintained. The standard testing utilities,
assert_almost_equal and such, are not be affected by this change except for
the nose specific functions import_nose and raises. Those functions are
not used in numpy, but are kept for downstream compatibility.

Numpy no longer monkey-patches ctypes with __array_interface__

Previously numpy added __array_interface__ attributes to all the integer
types from ctypes.

np.ma.notmasked_contiguous and np.ma.flatnotmasked_contiguous always return lists

This is the documented behavior, but previously the result could be any of
slice, None, or list.

All downstream users seem to check for the None result from
flatnotmasked_contiguous and replace it with []. Those callers will
continue to work as before.

np.squeeze restores old behavior of objects that cannot handle an axis argument

Prior to version 1.7.0, numpy.squeeze did not have an axis argument and
all empty axes were removed by default. The incorporation of an axis
argument made it possible to selectively squeeze single or multiple empty axes,
but the old API expectation was not respected because axes could still be
selectively removed (silent success) from an object expecting all empty axes to
be removed. That silent, selective removal of empty axes for objects expecting
the old behavior has been fixed and the old behavior restored.

unstructured void array's .item method now returns a bytes object

.item now returns a bytes object instead of a buffer or byte array.
This may affect code which assumed the return value was mutable, which is no
longer the case.

copy.copy and copy.deepcopy no longer turn masked into an array

Since np.ma.masked is a readonly scalar, copying should be a no-op. These
functions now behave consistently with np.copy().

Multifield Indexing of Structured Arrays will still return a copy

The change that multi-field indexing of structured arrays returns a view
instead of a copy is pushed back to 1.16. A new method
numpy.lib.recfunctions.repack_fields has been introduced to help mitigate
the effects of this change, which can be used to write code compatible with
both numpy 1.15 and 1.16. For more information on how to update code to account
for this future change see the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html>__.

C API changes

New function NpyIter_Close

The function NpyIter_Close has been added and should be called before
NpyIter_Deallocate to resolve possible writeback-enabled arrays.

New functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier

Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
have been added and should be used in place of the npy_get_floatstatusand
npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
were rearranging the order of operations when the previous functions were used
in the ufunc SIMD functions, resulting in the floatstatus flags being checked
before the operation whose status we wanted to check was run. See #10339 <https://github.com/numpy/numpy/issues/10370>__.

Changes to PyArray_GetDTypeTransferFunction

PyArray_GetDTypeTransferFunction now defaults to using user-defined
copyswapn / copyswap for user-defined dtypes. If this causes a
significant performance hit, consider implementing copyswapn to reflect the
implementation of PyArray_GetStridedCopyFn. See #10898 <https://github.com/numpy/numpy/pull/10898>__.

  • Functions npy_get_floatstatus_barrier and npy_clear_floatstatus_barrier
    have been added and should be used in place of the npy_get_floatstatusand
    npy_clear_status functions. Optimizing compilers like GCC 8.1 and Clang
    were rearranging the order of operations when the previous functions were
    used in the ufunc SIMD functions, resulting in the floatstatus flags being '
    checked before the operation whose status we wanted to check was run.
    See #10339 <https://github.com/numpy/numpy/issues/10370>__.

New Features

np.gcd and np.lcm ufuncs added for integer and objects types

These compute the greatest common divisor, and lowest common multiple,
respectively. These work on all the numpy integer types, as well as the
builtin arbitrary-precision Decimal and long types.

Support for cross-platform builds for iOS

The build system has been modified to add support for the
_PYTHON_HOST_PLATFORM environment variable, used by distutils when
compiling on one platform for another platform. This makes it possible to
compile NumPy for iOS targets.

This only enables you to compile NumPy for one specific platform at a time.
Creating a full iOS-compatible NumPy package requires building for the 5
architectures supported by iOS (i386, x86_64, armv7, armv7s and arm64), and
combining these 5 compiled builds products into a single "fat" binary.

return_indices keyword added for np.intersect1d

New keyword return_indices returns the indices of the two input arrays
that correspond to the common elements.

np.quantile and np.nanquantile

Like np.percentile and np.nanpercentile, but takes quantiles in [0, 1]
rather than percentiles in [0, 100]. np.percentile is now a thin wrapper
around np.quantile with the extra step of dividing by 100.

Build system

Added experimental support for the 64-bit RISC-V architecture.

Improvements

np.ufunc.reduce and related functions now accept an initial value

np.ufunc.reduce, np.sum, np.prod, np.min and np.max all
now accept an initial keyword argument that specifies the value to start
the reduction with.

np.flip can operate over multiple axes

np.flip now accepts None, or tuples of int, in its axis argument. If
axis is None, it will flip over all the axes.

histogram and histogramdd functions have moved to np.lib.histograms

These were originally found in np.lib.function_base. They are still
available under their un-scoped np.histogram(dd) names, and
to maintain compatibility, aliased at np.lib.function_base.histogram(dd).

Code that does from np.lib.function_base import * will need to be updated
with the new location, and should consider not using import * in future.

histogram will accept NaN values when explicit bins are given

Previously it would fail when trying to compute a finite range for the data.
Since the range is ignored anyway when the bins are given explicitly, this error
was needless.

Note that calling histogram on NaN values continues to raise the
RuntimeWarning s typical of working with nan values, which can be silenced
as usual with errstate.

histogram works on datetime types, when explicit bin edges are given

Dates, times, and timedeltas can now be histogrammed. The bin edges must be
passed explicitly, and are not yet computed automatically.

histogram "auto" estimator handles limited variance better

No longer does an IQR of 0 result in n_bins=1, rather the number of bins
chosen is related to the data size in this situation.

The edges retuned by `histogramandhistogramdd`` now match the data float type

When passed np.float16, np.float32, or np.longdouble data, the
returned edges are now of the same dtype. Previously, histogram would only
return the same type if explicit bins were given, and histogram would
produce float64 bins no matter what the inputs.

histogramdd allows explicit ranges to be given in a subset of axes

The range argument of numpy.histogramdd can now contain None values to
indicate that the range for the corresponding axis should be computed from the
data. Previously, this could not be specified on a per-axis basis.

np.r_ works with 0d arrays, and np.ma.mr_ works with np.ma.masked

0d arrays passed to the r_ and mr_ concatenation helpers are now treated as
though they are arrays of length 1. Previously, passing these was an error.
As a result, numpy.ma.mr_ now works correctly on the masked constant.

np.ptp accepts a keepdims argument, and extended axis tuples

np.ptp (peak-to-peak) can now work over multiple axes, just like np.max
and np.min.

MaskedArray.astype now is identical to ndarray.astype

This means it takes all the same arguments, making more code written for
ndarray work for masked array too.

Enable AVX2/AVX512 at compile time

Change to simd.inc.src to allow use of AVX2 or AVX512 at compile time. Previously
compilation for avx2 (or 512) with -march=native would still use the SSE
code for the simd functions even when the rest of the code got AVX2.

nan_to_num always returns scalars when receiving scalar or 0d inputs

Previously an array was returned for integer scalar inputs, which is
inconsistent with the behavior for float inputs, and that of ufuncs in general.
For all types of scalar or 0d input, the result is now a scalar.

np.flatnonzero works on numpy-convertible types

np.flatnonzero now uses np.ravel(a) instead of a.ravel(), so it
works for lists, tuples, etc.

np.interp returns numpy scalars rather than builtin scalars

Previously np.interp(0.5, [0, 1], [10, 20]) would return a float, but
now it returns a np.float64 object, which more closely matches the behavior
of other functions.

Additionally, the special case of np.interp(object_array_0d, ...) is no
longer supported, as np.interp(object_array_nd) was never supported anyway.

As a result of this change, the period argument can now be used on 0d
arrays.

Allow dtype field names to be unicode in Python 2

Previously np.dtype([(u'name', float)]) would raise a TypeError in
Python 2, as only bytestrings were allowed in field names. Now any unicode
string field names will be encoded with the ascii codec, raising a
UnicodeEncodeError upon failure.

This change makes it easier to write Python 2/3 compatible code using
from __future__ import unicode_literals, which previously would cause
string literal field names to raise a TypeError in Python 2.

Comparison ufuncs accept dtype=object, overriding the default bool

This allows object arrays of symbolic types, which override == and other
operators to return expressions, to be compared elementwise with
np.equal(a, b, dtype=object).

sort functions accept kind='stable'

Up until now, to perform a stable sort on the data, the user must do:

>>> np.sort([5, 2, 6, 2, 1], kind='mergesort')
[1, 2, 2, 5, 6]

because merge sort is the only stable sorting algorithm available in
NumPy. However, having kind='mergesort' does not make it explicit that
the user wants to perform a stable sort thus harming the readability.

This change allows the user to specify kind='stable' thus clarifying
the intent.

Do not make temporary copies for in-place accumulation

When ufuncs perform accumulation they no longer make temporary copies because
of the overlap between input an output, that is, the next element accumulated
is added before the accumulated result is stored in its place, hence the
overlap is safe. Avoiding the copy results in faster execution.

linalg.matrix_power can now handle stacks of matrices

Like other functions in linalg, matrix_power can now deal with arrays
of dimension larger than 2, which are treated as stacks of matrices. As part
of the change, to further improve consistency, the name of the first argument
has been changed to a (from M), and the exceptions for non-square
matrices have been changed to LinAlgError (from ValueError).

Increased performance in random.permutation for multidimensional arrays

permutation uses the fast path in random.shuffle for all input
array dimensions. Previously the fast path was only used for 1-d arrays.

Generalized ufuncs now accept axes, axis and keepdims arguments

One can control over which axes a generalized ufunc operates by passing in an
axes argument, a list of tuples with indices of particular axes. For
instance, for a signature of (i,j),(j,k)->(i,k) appropriate for matrix
multiplication, the base elements are two-dimensional matrices and these are
taken to be stored in the two last axes of each argument. The corresponding
axes keyword would be [(-2, -1), (-2, -1), (-2, -1)]. If one wanted to
use leading dimensions instead, one would pass in [(0, 1), (0, 1), (0, 1)].

For simplicity, for generalized ufuncs that operate on 1-dimensional arrays
(vectors), a single integer is accepted instead of a single-element tuple, and
for generalized ufuncs for which all outputs are scalars, the (empty) output
tuples can be omitted. Hence, for a signature of (i),(i)->() appropriate
for an inner product, one could pass in axes=[0, 0] to indicate that the
vectors are stored in the first dimensions of the two inputs arguments.

As a short-cut for generalized ufuncs that are similar to reductions, i.e.,
that act on a single, shared core dimension such as the inner product example
above, one can pass an axis argument. This is equivalent to passing in
axes with identical entries for all arguments with that core dimension
(e.g., for the example above, axes=[(axis,), (axis,)]).

Furthermore, like for reductions, for generalized ufuncs that have inputs that
all have the same number of core dimensions and outputs with no core dimension,
one can pass in keepdims to leave a dimension with size 1 in the outputs,
thus allowing proper broadcasting against the original inputs. The location of
the extra dimension can be controlled with axes. For instance, for the
inner-product example, keepdims=True, axes=[-2, -2, -2] would act on the
inner-product example, keepdims=True, axis=-2 would act on the
one-but-last dimension of the input arguments, and leave a size 1 dimension in
that place in the output.

float128 values now print correctly on ppc systems

Previously printing float128 values was buggy on ppc, since the special
double-double floating-point-format on these systems was not accounted for.
float128s now print with correct rounding and uniqueness.

Warning to ppc users: You should upgrade glibc if it is version <=2.23,
especially if using float128. On ppc, glibc's malloc in these version often
misaligns allocated memory which can crash numpy when using float128 values.

New np.take_along_axis and np.put_along_axis functions

When used on multidimensional arrays, argsort, argmin, argmax, and
argpartition return arrays that are difficult to use as indices.
take_along_axis provides an easy way to use these indices to lookup values
within an array, so that::

np.take_along_axis(a, np.argsort(a, axis=axis), axis=axis)

is the same as::

np.sort(a, axis=axis)

np.put_along_axis acts as the dual operation for writing to these indices
within an array.

Checksums

MD5

ae603a7948555f5a877aa9e62d4de4a5  numpy-1.15.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
2b2bdf4a2e2d2be118740c036952b12a  numpy-1.15.0rc1-cp27-cp27m-manylinux1_i686.whl
d0f34f5a96b108e39c5f7c349de4b079  numpy-1.15.0rc1-cp27-cp27m-manylinux1_x86_64.whl
91156245b11f2606fb9679ad11cd3788  numpy-1.15.0rc1-cp27-cp27mu-manylinux1_i686.whl
34f0cc01a35fd61bbf25ee64f2dac5ff  numpy-1.15.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
3d003bfc970de7364c7a509f1905b017  numpy-1.15.0rc1-cp27-none-win32.whl
2e63c6cef05817b00aec3550075e4a32  numpy-1.15.0rc1-cp27-none-win_amd64.whl
976c3898f88d06f2fd4e7e4acd454e37  numpy-1.15.0rc1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
faa3445ef691307efc371c82d34dbbfb  numpy-1.15.0rc1-cp34-cp34m-manylinux1_i686.whl
fe5ef50a0f8b21dd16283cbfd05ff438  numpy-1.15.0rc1-cp34-cp34m-manylinux1_x86_64.whl
77bad7aeff1472e6777aedd62f6b7a06  numpy-1.15.0rc1-cp34-none-win32.whl
e8890f675820efb7718a02b071edb3d3  numpy-1.15.0rc1-cp34-none-win_amd64.whl
5a095e7fef444bb70cf43e33fd71a2b0  numpy-1.15.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
cf92df0e604414593f21976b998f97ba  numpy-1.15.0rc1-cp35-cp35m-manylinux1_i686.whl
0cb3a14f65a556652a143fd8cdff21e6  numpy-1.15.0rc1-cp35-cp35m-manylinux1_x86_64.whl
e146ae6eb6bd78b928ae624a9db6a323  numpy-1.15.0rc1-cp35-none-win32.whl
e77c2df92eec2f87a89b5ecffe31de8e  numpy-1.15.0rc1-cp35-none-win_amd64.whl
ed423c6807ae7b5488546436259d281f  numpy-1.15.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
d7455ee275bae39c68e130e4848ebb80  numpy-1.15.0rc1-cp36-cp36m-manylinux1_i686.whl
a7e88e6d9c6f5bd59b354b16538a3cc5  numpy-1.15.0rc1-cp36-cp36m-manylinux1_x86_64.whl
e5f8e934ff03979bdb3dc6041ef40859  numpy-1.15.0rc1-cp36-none-win32.whl
a0a932cc07062bb70ad9ff893b57d2b7  numpy-1.15.0rc1-cp36-none-win_amd64.whl
f6c1139993cce7bea5b78418ecf56ed1  numpy-1.15.0rc1.tar.gz
ff5045d88b409bfeff664b13a110400e  numpy-1.15.0rc1.zip

SHA256

d5e4c5c34745d626d8f6613e4dd9b8d88b2dd9a52ea8764ed934cc5a8cb9cc22  numpy-1.15.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
744d8c46272a5f2240fc750f7da1d831d90d0f1ce938d5540bcaabfb0f762a53  numpy-1.15.0rc1-cp27-cp27m-manylinux1_i686.whl
9fe328aa046c5c9359d07f5161bdcdaaae8cd6d4fcf0761a41db424628f805d3  numpy-1.15.0rc1-cp27-cp27m-manylinux1_x86_64.whl
85dbc672c5f2683147f5ee1af0793a5159411340f84fea99469dfd699def5bfd  numpy-1.15.0rc1-cp27-cp27mu-manylinux1_i686.whl
9870ddc0055dbe5d77f1a7f5abd493737f0728f88e15fdafc459ea5e64a82efa  numpy-1.15.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
23ef8080613e5f8743b94d6e075e5894418a4a8a95a2eb7da3e524d180370512  numpy-1.15.0rc1-cp27-none-win32.whl
647dfec3cad0ab6a443a5661ad09cc35c2dd317f843909535d4183b05fea1860  numpy-1.15.0rc1-cp27-none-win_amd64.whl
fb78cb51abd23395a320b3608f35b8a2afcd76f32954184cf84b5db07e3c8649  numpy-1.15.0rc1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
baf9a2aa084e184cbf9b91702a26491fa263826ae941160527645cff84bf96b5  numpy-1.15.0rc1-cp34-cp34m-manylinux1_i686.whl
2afb65982702da7905640afc63688b6b38c183f410e8df9dfb88c45a430d34f3  numpy-1.15.0rc1-cp34-cp34m-manylinux1_x86_64.whl
00fa0b94566db5512fd402150dbadaeb38e0e78521673242f8ef687c343efcfe  numpy-1.15.0rc1-cp34-none-win32.whl
fc1fa913fd0b3d80aed6744b7837176d755e0a6e023364db006c8d17679d64aa  numpy-1.15.0rc1-cp34-none-win_amd64.whl
2d17cf40bd5b97c504fb4da00f1c0686c1ef9ebf363b8d5667269e66b07a2544  numpy-1.15.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
01f46c1149d7571860f758299e5a0b6153d6d34f8821adf0c87d8d6f3e9517c5  numpy-1.15.0rc1-cp35-cp35m-manylinux1_i686.whl
d80d04f9ea96c5d8fc27b0bc47122ad3459946f63fb49d26259decda25677221  numpy-1.15.0rc1-cp35-cp35m-manylinux1_x86_64.whl
f2394a623f83c75dec54ab366ccac879ae01dcff9fa3391c97bda40c2b4b41b3  numpy-1.15.0rc1-cp35-none-win32.whl
3cff020d7beba3668c7e67a5921a4596a6abd917815691b93a5c87c5ae2f2ed3  numpy-1.15.0rc1-cp35-none-win_amd64.whl
ce9295610854f1dc749cc05a1f705539c983cfd4e99f3e7c01106f2d0f49d132  numpy-1.15.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
8a211172894d6b21e8d2133dbdced490b95492707982cffce32b97fcada718ca  numpy-1.15.0rc1-cp36-cp36m-manylinux1_i686.whl
e16b6b066a19fb595eea0bd29ec0f9429af6bda3d0f7be3f31e57bff2b735ac5  numpy-1.15.0rc1-cp36-cp36m-manylinux1_x86_64.whl
b1dcad0333986cbbbfa547d57807047d9777d5e1fd56c47eb47c59050e4485b1  numpy-1.15.0rc1-cp36-none-win32.whl
0e1871bb9307fbc3173c198f5536792185d20750cd5ad9907a14d49f767464b5  numpy-1.15.0rc1-cp36-none-win_amd64.whl
c57f33f83f61ad819e3fcb41afa54d224d03377d6f33be57289924cc193ead63  numpy-1.15.0rc1.tar.gz
592657828982b13ff48a56c5f75fb2f286709f7b830ec211029ac7970027b54d  numpy-1.15.0rc1.zip
numpy -

Published by mattip over 6 years ago

NumPy 1.14.5 Release Notes

This is a bugfix release for bugs reported following the 1.14.4 release. The
most significant fixes are:

  • fixes for compilation errors on alpine and NetBSD

The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2 and should work for the upcoming Python 3.7.

Contributors

A total of 1 person contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Charles Harris

Pull requests merged

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

  • #11274 <https://github.com/numpy/numpy/pull/11274>__: BUG: Correct use of NPY_UNUSED.
  • #11294 <https://github.com/numpy/numpy/pull/11294>__: BUG: Remove extra trailing parentheses.

Checksums

MD5


429afa5c8720016214a79779f774d3a4  numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
de8f5c6c0e46eedf8d92c1a7ba3fccf7  numpy-1.14.5-cp27-cp27m-manylinux1_i686.whl
6315999b5142d22ce7bd9e74b1b4e3ab  numpy-1.14.5-cp27-cp27m-manylinux1_x86_64.whl
397a64608b5809983ff07842ebe0d353  numpy-1.14.5-cp27-cp27mu-manylinux1_i686.whl
6759e2f4bd57727f1ab9d6c9611b3f9d  numpy-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl
2d5609f384fccf9fe4e6172dd4fed3d0  numpy-1.14.5-cp27-none-win32.whl
c0d5fc38ab45f19cbd12200ff4ea45dd  numpy-1.14.5-cp27-none-win_amd64.whl
0a77f36af749e5c3546c3d310f571256  numpy-1.14.5-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ae15c8254a4a3ebfc45894617ce030a2  numpy-1.14.5-cp34-cp34m-manylinux1_i686.whl
78c67b4b4f8f3f8bd9c2f897f9d40f60  numpy-1.14.5-cp34-cp34m-manylinux1_x86_64.whl
5263ec59028d508992c15263993698d0  numpy-1.14.5-cp34-none-win32.whl
193365c9f1bb2086b47afe9c797ff415  numpy-1.14.5-cp34-none-win_amd64.whl
90caeba061eec5dbebadad5c8bad3a0c  numpy-1.14.5-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
129848206c41b68071fe9cb469a66846  numpy-1.14.5-cp35-cp35m-manylinux1_i686.whl
395c0058b7ec0ae0cad1e052362e9aeb  numpy-1.14.5-cp35-cp35m-manylinux1_x86_64.whl
a542ea0d9047df0da8ab69e90d60dbdc  numpy-1.14.5-cp35-none-win32.whl
c5c86e11b5071c0ca0bb11f6a84f20e6  numpy-1.14.5-cp35-none-win_amd64.whl
350120bd20a0a45857b4c39e901af41b  numpy-1.14.5-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
5a0682a984fcf6f87a9f10760d896b70  numpy-1.14.5-cp36-cp36m-manylinux1_i686.whl
c5596c3d232345d0f0176cd02e6efe92  numpy-1.14.5-cp36-cp36m-manylinux1_x86_64.whl
c0306cbad68f8084e977121ba104b634  numpy-1.14.5-cp36-none-win32.whl
01b5bd7897e1306660c7ea6a30391cc4  numpy-1.14.5-cp36-none-win_amd64.whl
e3189ee851c3a0e2e6e4c6e80a711ec8  numpy-1.14.5.tar.gz
02d940a6931703de2c41fa5590ac7e98  numpy-1.14.5.zip

SHA256


e1864a4e9f93ddb2dc6b62ccc2ec1f8250ff4ac0d3d7a15c8985dd4e1fbd6418  numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
085afac75bbc97a096744fcfc97a4b321c5a87220286811e85089ae04885acdd  numpy-1.14.5-cp27-cp27m-manylinux1_i686.whl
6c57f973218b776195d0356e556ec932698f3a563e2f640cfca7020086383f50  numpy-1.14.5-cp27-cp27m-manylinux1_x86_64.whl
589336ba5199c8061239cf446ee2f2f1fcc0c68e8531ee1382b6fc0c66b2d388  numpy-1.14.5-cp27-cp27mu-manylinux1_i686.whl
5edf1acc827ed139086af95ce4449b7b664f57a8c29eb755411a634be280d9f2  numpy-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl
6b82b81c6b3b70ed40bc6d0b71222ebfcd6b6c04a6e7945a936e514b9113d5a3  numpy-1.14.5-cp27-none-win32.whl
385f1ce46e08676505b692bfde918c1e0b350963a15ef52d77691c2cf0f5dbf6  numpy-1.14.5-cp27-none-win_amd64.whl
758d1091a501fd2d75034e55e7e98bfd1370dc089160845c242db1c760d944d9  numpy-1.14.5-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c725d11990a9243e6ceffe0ab25a07c46c1cc2c5dc55e305717b5afe856c9608  numpy-1.14.5-cp34-cp34m-manylinux1_i686.whl
07379fe0b450f6fd6e5934a9bc015025bb4ce1c8fbed3ca8bef29328b1bc9570  numpy-1.14.5-cp34-cp34m-manylinux1_x86_64.whl
9e1f53afae865cc32459ad211493cf9e2a3651a7295b7a38654ef3d123808996  numpy-1.14.5-cp34-none-win32.whl
4d278c2261be6423c5e63d8f0ceb1b0c6db3ff83f2906f4b860db6ae99ca1bb5  numpy-1.14.5-cp34-none-win_amd64.whl
d696a8c87315a83983fc59dd27efe034292b9e8ad667aeae51a68b4be14690d9  numpy-1.14.5-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
2df854df882d322d5c23087a4959e145b953dfff2abe1774fec4f639ac2f3160  numpy-1.14.5-cp35-cp35m-manylinux1_i686.whl
baadc5f770917ada556afb7651a68176559f4dca5f4b2d0947cd15b9fb84fb51  numpy-1.14.5-cp35-cp35m-manylinux1_x86_64.whl
2d6481c6bdab1c75affc0fc71eb1bd4b3ecef620d06f2f60c3f00521d54be04f  numpy-1.14.5-cp35-none-win32.whl
51c5dcb51cf88b34b7d04c15f600b07c6ccbb73a089a38af2ab83c02862318da  numpy-1.14.5-cp35-none-win_amd64.whl
8b8dcfcd630f1981f0f1e3846fae883376762a0c1b472baa35b145b911683b7b  numpy-1.14.5-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
9d69967673ab7b028c2df09cae05ba56bf4e39e3cb04ebe452b6035c3b49848e  numpy-1.14.5-cp36-cp36m-manylinux1_i686.whl
8622db292b766719810e0cb0f62ef6141e15fe32b04e4eb2959888319e59336b  numpy-1.14.5-cp36-cp36m-manylinux1_x86_64.whl
97fa8f1dceffab782069b291e38c4c2227f255cdac5f1e3346666931df87373e  numpy-1.14.5-cp36-none-win32.whl
381ad13c30cd1d0b2f3da8a0c1a4aa697487e8bb0e9e0cbeb7439776bcb645f8  numpy-1.14.5-cp36-none-win_amd64.whl
1b4a02758fb68a65ea986d808867f1d6383219c234aef553a8741818e795b529  numpy-1.14.5.tar.gz
a4a433b3a264dbc9aa9c7c241e87c0358a503ea6394f8737df1683c7c9a102ac  numpy-1.14.5.zip
numpy -

Published by charris over 6 years ago

==========================
NumPy 1.14.4 Release Notes

This is a bugfix release for bugs reported following the 1.14.3 release. The
most significant fixes are:

  • fixes for compiler instruction reordering that resulted in NaN's not being
    properly propagated in np.max and np.min,

  • fixes for bus faults on SPARC and older ARM due to incorrect alignment
    checks.

There are also improvements to printing of long doubles on PPC platforms. All
is not yet perfect on that platform, the whitespace padding is still incorrect
and is to be fixed in numpy 1.15, consequently NumPy still fails some
printing-related (and other) unit tests on ppc systems. However, the printed
values are now correct.

Note that NumPy will error on import if it detects incorrect float32 dot
results. This problem has been seen on the Mac when working in the Anaconda
enviroment and is due to a subtle interaction between MKL and PyQt5. It is not
strictly a NumPy problem, but it is best that users be aware of it. See the
gh-8577 NumPy issue for more information.

The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2 and should work for the upcoming Python 3.7.

Contributors

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

  • Allan Haldane
  • Charles Harris
  • Marten van Kerkwijk
  • Matti Picus
  • Pauli Virtanen
  • Ryan Soklaski +
  • Sebastian Berg

Pull requests merged

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

  • #11104: BUG: str of DOUBLE_DOUBLE format wrong on ppc64
  • #11170: TST: linalg: add regression test for gh-8577
  • #11174: MAINT: add sanity-checks to be run at import time
  • #11181: BUG: void dtype setup checked offset not actual pointer for alignment
  • #11194: BUG: Python2 doubles don't print correctly in interactive shell.
  • #11198: BUG: optimizing compilers can reorder call to npy_get_floatstatus
  • #11199: BUG: reduce using SSE only warns if inside SSE loop
  • #11203: BUG: Bytes delimiter/comments in genfromtxt should be decoded
  • #11211: BUG: Fix reference count/memory leak exposed by better testing
  • #11219: BUG: Fixes einsum broadcasting bug when optimize=True
  • #11251: DOC: Document 1.14.4 release.

Checksums

MD5

118e010f76fba91f05111e775d08b9d2  numpy-1.14.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a08af11af72e8393d61f1724e2a42258  numpy-1.14.4-cp27-cp27m-manylinux1_i686.whl
bbf56f4de32bb2c4215e01ea4f1b9445  numpy-1.14.4-cp27-cp27m-manylinux1_x86_64.whl
b5e17dcc08205a278ffd33c6baeb7562  numpy-1.14.4-cp27-cp27mu-manylinux1_i686.whl
e6844d6134fed4f79b52cd89d66edb76  numpy-1.14.4-cp27-cp27mu-manylinux1_x86_64.whl
e9d4ab30ffee0f57da2292ed2c42bdcb  numpy-1.14.4-cp27-none-win32.whl
ff04e3451a90fdf9ae8b6db8b3e8c2d6  numpy-1.14.4-cp27-none-win_amd64.whl
fbe6a5a9a0de9f85bcb729702a132769  numpy-1.14.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
33a177cf9d60fa26d30dc80b7163a374  numpy-1.14.4-cp34-cp34m-manylinux1_i686.whl
6335ee571648d8db7561a619328b69c7  numpy-1.14.4-cp34-cp34m-manylinux1_x86_64.whl
e53dd3796a0cdec43037b18c5c54d1a3  numpy-1.14.4-cp34-none-win32.whl
aab911c898c58073b47a2d1f28228a41  numpy-1.14.4-cp34-none-win_amd64.whl
a05e215d9443c838a531119eb5c1eadc  numpy-1.14.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7c5f7ff2cccb13c22b87f768ac1cc6e2  numpy-1.14.4-cp35-cp35m-manylinux1_i686.whl
d22105d03a15c9fd6ec4ecffa4b1f764  numpy-1.14.4-cp35-cp35m-manylinux1_x86_64.whl
7a5d4c66c7f6e430eb73b5683d99cacb  numpy-1.14.4-cp35-none-win32.whl
cf0c074d9243f8bf6eff8291ac12a003  numpy-1.14.4-cp35-none-win_amd64.whl
79233bdad30a65beb515c86a4612102d  numpy-1.14.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
135139bd2ec26e2b52bdd2d36be94c44  numpy-1.14.4-cp36-cp36m-manylinux1_i686.whl
9c56d525cf6da2b8489e723d72ccc9a2  numpy-1.14.4-cp36-cp36m-manylinux1_x86_64.whl
ec9af9e19aac597e1a245ada9c333e2d  numpy-1.14.4-cp36-none-win32.whl
f8ec9c6167f2b0d08066ec78c3a01a4c  numpy-1.14.4-cp36-none-win_amd64.whl
7de00fc3be91a3ab913d4efe206b3928  numpy-1.14.4.tar.gz
a8a23723342a561e579757553e9db73a  numpy-1.14.4.zip

SHA256

c0c4bdcb771a147cb14286e3aeb72267e1664652d4150b0df255f0c210166a62  numpy-1.14.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
939376b3b8d9bd42529a2713534c9bae7f11c774614d4d2f7f2a38cae96101f1  numpy-1.14.4-cp27-cp27m-manylinux1_i686.whl
6105d909e56c4f3f173a7294154eee5da80853104e9c3ebcf9e523fb3bb6cf70  numpy-1.14.4-cp27-cp27m-manylinux1_x86_64.whl
3ed68b8ef0635e12b06c216d3ed33572d9c15b05a5a5d6ab870d073190c3eef3  numpy-1.14.4-cp27-cp27mu-manylinux1_i686.whl
1dc831683f18c11e6b5b7ad3610b9f00417b8d3fc63a8adcdbe68844d9dd6f62  numpy-1.14.4-cp27-cp27mu-manylinux1_x86_64.whl
8d87ac65d830ee3087e6bd02b0201e68aed4c715ff2e227e3640e7ded38d8a2e  numpy-1.14.4-cp27-none-win32.whl
7fbceea93b6877419d84516705a265dfc4626939a29107a4d04db599bf6cdf8d  numpy-1.14.4-cp27-none-win_amd64.whl
a1b4a80d59658fc438716095deb1971c6315482b461d976f760d920b6509fd5d  numpy-1.14.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ef7a07f6a77658a1038e6d22e53458129c04a95b5770f080b5741320d9491e32  numpy-1.14.4-cp34-cp34m-manylinux1_i686.whl
c5065b3aec37cd1b7ec2882b3ab86e200d15219a0fb96fea65a16c6b59d3c0f0  numpy-1.14.4-cp34-cp34m-manylinux1_x86_64.whl
b2b2741da83b1e016094b2fef2cadec1abd3ccd3d97428634ec6afe1dcb699b8  numpy-1.14.4-cp34-none-win32.whl
419dfe9bcb09d2e87ecf296c5ebf2b047c568419c89588acc9dbce6d2d761bea  numpy-1.14.4-cp34-none-win_amd64.whl
be4664fe153ca6dbd961fb06f99b9b88b114ab44649376253b540aafbf42e469  numpy-1.14.4-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0d6d7bbcb54babaf39fe658bcc6f79641c9c62813c6d477802d783c7ba1a437c  numpy-1.14.4-cp35-cp35m-manylinux1_i686.whl
f54114395aabe13c7c4e4b425145cfd998eaf0781e87a9e9b2e77426f1ec8a82  numpy-1.14.4-cp35-cp35m-manylinux1_x86_64.whl
eb6ccd2b47d43199ec9a7c39bd45e399ccb5756e7367aaf92ced3c46fa67b16b  numpy-1.14.4-cp35-none-win32.whl
f6a4ae8d5e1126bf4d8520a9aa6a82d067ab3ce7d21f58f0d50ead2aebda7bfb  numpy-1.14.4-cp35-none-win_amd64.whl
b037993dfb1175a68b6a2bfc6b1c2af57c09031d1332fea3ab25a539b43bd475  numpy-1.14.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e6c24c83ca64d447a18f041bd53cbe96c74405f59939b6006755105583b62629  numpy-1.14.4-cp36-cp36m-manylinux1_i686.whl
f29a9c5607b0fded7a9f0871dbd06918a88cb0a465acfac5c67f92d1a4115d48  numpy-1.14.4-cp36-cp36m-manylinux1_x86_64.whl
d9ceb6c680ffbe55ef6cf9d93558e0ddb72d616b885d77c536920f3da2112703  numpy-1.14.4-cp36-none-win32.whl
9e6694912f13afd8b1e15aa8002e9c951a377c94080c5442de154d743a69b3ff  numpy-1.14.4-cp36-none-win_amd64.whl
c9a83644685edf8b5383b7632daa37df115b41aa20ca6ec3139e707d88f7c903  numpy-1.14.4.tar.gz
2185a0f31ecaa0792264fa968c8e0ba6d96acf144b26e2e1d1cd5b77fc11a691  numpy-1.14.4.zip
numpy - v1.14.3

Published by ahaldane over 6 years ago

==========================
NumPy 1.14.3 Release Notes

This is a bugfix release for a few bugs reported following the 1.14.2 release:

  • np.lib.recfunctions.fromrecords accepts a list-of-lists, until 1.15
  • In python2, float types use the new print style when printing to a file
  • style arg in "legacy" print mode now works for 0d arrays

The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2.

Contributors

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

  • Allan Haldane
  • Charles Harris
  • Jonathan March +
  • Malcolm Smith +
  • Matti Picus
  • Pauli Virtanen

Pull requests merged

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

  • #10862: BUG: floating types should override tp_print (1.14 backport)
  • #10905: BUG: for 1.14 back-compat, accept list-of-lists in fromrecords
  • #10947: BUG: 'style' arg to array2string broken in legacy mode (1.14...
  • #10959: BUG: test, fix for missing flags['WRITEBACKIFCOPY'] key
  • #10960: BUG: Add missing underscore to prototype in check_embedded_lapack
  • #10961: BUG: Fix encoding regression in ma/bench.py (Issue #10868)
  • #10962: BUG: core: fix NPY_TITLE_KEY macro on pypy
  • #10974: BUG: test, fix PyArray_DiscardWritebackIfCopy...

Checksums

MD5

14b675b1f5c0e33dea22735df8ecf5d1  numpy-1.14.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
501b9237037beee4c1262180c317f527  numpy-1.14.3-cp27-cp27m-manylinux1_i686.whl
51f3c8de7bac77ce864a8a28dc0c3f10  numpy-1.14.3-cp27-cp27m-manylinux1_x86_64.whl
37bfe26b655464a77356ee053deafad2  numpy-1.14.3-cp27-cp27mu-manylinux1_i686.whl
c8243f0d6a77c88acf48235aaedf1497  numpy-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl
9c616eb6134c92ca42cca5883e7861b7  numpy-1.14.3-cp27-none-win32.whl
fa3f732464bc83eb08fc6748aeb01ba0  numpy-1.14.3-cp27-none-win_amd64.whl
711dd188cf3269e092adb4240742731b  numpy-1.14.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0450e19513ff2406055bdffcdfef8d82  numpy-1.14.3-cp34-cp34m-manylinux1_i686.whl
1a0fc864b3b1aea403b426eb2e83276c  numpy-1.14.3-cp34-cp34m-manylinux1_x86_64.whl
13fa200925025289dbd120078c54377f  numpy-1.14.3-cp34-none-win32.whl
fc74d7d13da26e2ffc8bf39d5c24d171  numpy-1.14.3-cp34-none-win_amd64.whl
faee14118dea28c6e2be5aadaa1613ca  numpy-1.14.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e93edc38b9e31d774af60b45ad25d3d7  numpy-1.14.3-cp35-cp35m-manylinux1_i686.whl
6d7ced18705cdd82030472b7a0b106c9  numpy-1.14.3-cp35-cp35m-manylinux1_x86_64.whl
42000f9cfef06906e25c0020a9c92366  numpy-1.14.3-cp35-none-win32.whl
b7cd0a630d24ef8ed245cde71e50c46e  numpy-1.14.3-cp35-none-win_amd64.whl
d728ee343c54c8b9b1186747bae6800b  numpy-1.14.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0f8ed907b7c37d7e8c0508ee30ac5e0b  numpy-1.14.3-cp36-cp36m-manylinux1_i686.whl
04428f5a071531dd463504250c194de3  numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
a376953ac6bfca04371899d70126ebd4  numpy-1.14.3-cp36-none-win32.whl
955959dbc1a743308bfcafb4d867da29  numpy-1.14.3-cp36-none-win_amd64.whl
7c3c806ae27196c92d2fb3fbd4991e81  numpy-1.14.3.tar.gz
97416212c0a172db4bc6b905e9c4634b  numpy-1.14.3.zip

SHA256

a8dbab311d4259de5eeaa5b4e83f5f8545e4808f9144e84c0f424a6ee55a7b98  numpy-1.14.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
034717bfef517858abc79324820a702dc6cd063effb9baab86533e8a78670689  numpy-1.14.3-cp27-cp27m-manylinux1_i686.whl
f39afab5769b3aaa786634b94b4a23ef3c150bdda044e8a32a3fc16ddafe803b  numpy-1.14.3-cp27-cp27m-manylinux1_x86_64.whl
8670067685051b49d1f2f66e396488064299fefca199c7c80b6ba0c639fedc98  numpy-1.14.3-cp27-cp27mu-manylinux1_i686.whl
0db6301324d0568089663ef2701ad90ebac0e975742c97460e89366692bd0563  numpy-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl
98ff275f1b5907490d26b30b6ff111ecf2de0254f0ab08833d8fe61aa2068a00  numpy-1.14.3-cp27-none-win32.whl
aaef1bea636b6e552bbc5dae0ada87d4f6046359daaa97a05a013b0169620f27  numpy-1.14.3-cp27-none-win_amd64.whl
760550fdf9d8ec7da9c4402a4afe6e25c0f184ae132011676298a6b636660b45  numpy-1.14.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e8578a62a8eaf552b95d62f630bb5dd071243ba1302bbff3e55ac48588508736  numpy-1.14.3-cp34-cp34m-manylinux1_i686.whl
e33baf50f2f6b7153ddb973601a11df852697fba4c08b34a5e0f39f66f8120e1  numpy-1.14.3-cp34-cp34m-manylinux1_x86_64.whl
0074d42e2cc333800bd09996223d40ec52e3b1ec0a5cab05dacc09b662c4c1ae  numpy-1.14.3-cp34-none-win32.whl
c3fe23df6fe0898e788581753da453f877350058c5982e85a8972feeecb15309  numpy-1.14.3-cp34-none-win_amd64.whl
1864d005b2eb7598063e35c320787d87730d864f40d6410f768fe4ea20672016  numpy-1.14.3-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
f22b3206f1c561dd9110b93d144c6aaa4a9a354e3b07ad36030df3ea92c5bb5b  numpy-1.14.3-cp35-cp35m-manylinux1_i686.whl
c80fcf9b38c7f4df666150069b04abbd2fe42ae640703a6e1f128cda83b552b7  numpy-1.14.3-cp35-cp35m-manylinux1_x86_64.whl
510863d606c932b41d2209e4de6157ab3fdf52001d3e4ad351103176d33c4b8b  numpy-1.14.3-cp35-none-win32.whl
c5eb7254cfc4bd7a4330ad7e1f65b98343836865338c57b0e25c661e41d5cfd9  numpy-1.14.3-cp35-none-win_amd64.whl
b8987e30d9a0eb6635df9705a75cf8c4a2835590244baecf210163343bc65176  numpy-1.14.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
57dc6c22d59054542600fce6fae2d1189b9c50bafc1aab32e55f7efcc84a6c46  numpy-1.14.3-cp36-cp36m-manylinux1_i686.whl
46ce8323ca9384814c7645298b8b627b7d04ce97d6948ef02da357b2389d6972  numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
9ccf4d5c9139b1e985db915039baa0610a7e4a45090580065f8d8cb801b7422f  numpy-1.14.3-cp36-none-win32.whl
560e23a12e7599be8e8b67621396c5bc687fd54b48b890adbc71bc5a67333f86  numpy-1.14.3-cp36-none-win_amd64.whl
cfcfc7a9a8ba4275c60a815c683d59ac5e7aa9362d76573b6cc4324ffb1235fa  numpy-1.14.3.tar.gz
9016692c7d390f9d378fc88b7a799dc9caa7eb938163dda5276d3f3d6f75debf  numpy-1.14.3.zip
numpy -

Published by charris over 6 years ago

==========================
NumPy 1.14.2 Release Notes

This is a bugfix release for some bugs reported following the 1.14.1 release. The major
problems dealt with are as follows.

  • Residual bugs in the new array printing functionality.
  • Regression resulting in a relocation problem with shared library.
  • Improved PyPy compatibility.

The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.26.1, which is known to not support the upcoming
Python 3.7 release. People who wish to run Python 3.7 should check out the
NumPy repo and try building with the, as yet, unreleased master branch of
Cython.

Contributors

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

  • Allan Haldane
  • Charles Harris
  • Eric Wieser
  • Pauli Virtanen

Pull requests merged

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

  • #10674: BUG: Further back-compat fix for subclassed array repr
  • #10725: BUG: dragon4 fractional output mode adds too many trailing zeros
  • #10726: BUG: Fix f2py generated code to work on PyPy
  • #10727: BUG: Fix missing NPY_VISIBILITY_HIDDEN on npy_longdouble_to_PyLong
  • #10729: DOC: Create 1.14.2 notes and changelog.

Checksums

MD5

9bb06966218d0f3d0a25a6155c7d2439  numpy-1.14.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b8a260b915d44475f4385fed4c6a7ec8  numpy-1.14.2-cp27-cp27m-manylinux1_i686.whl
7733aa702cebb5b0469b820ea9cfc293  numpy-1.14.2-cp27-cp27m-manylinux1_x86_64.whl
ef1065f3ecd08054eca9c6c14a2e3518  numpy-1.14.2-cp27-cp27mu-manylinux1_i686.whl
1227a63fcc8ce91a75d2ab006d406df7  numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl
6ac633c46c13dd2af93761460d63436e  numpy-1.14.2-cp27-none-win32.whl
187a94722b84d65cc3a9ecfce27ee3b2  numpy-1.14.2-cp27-none-win_amd64.whl
580340cfe4a14f8a9e1d781d7b42955b  numpy-1.14.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7f38fb83008ed4bb8217840ac27aeba4  numpy-1.14.2-cp34-cp34m-manylinux1_i686.whl
cbe383ad27db21767b6ffdd943e3df9c  numpy-1.14.2-cp34-cp34m-manylinux1_x86_64.whl
350a1e0f0c825ffa1de264108c648482  numpy-1.14.2-cp34-none-win32.whl
ececd9b8891d801d4a968c2ec5eac7bb  numpy-1.14.2-cp34-none-win_amd64.whl
8a74bb1f94ad8c1ad8f37e73f967b850  numpy-1.14.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c1231d7e7fc52c09dff9a529ad228818  numpy-1.14.2-cp35-cp35m-manylinux1_i686.whl
ef57856bf6dade82922ab58922756dd0  numpy-1.14.2-cp35-cp35m-manylinux1_x86_64.whl
8c98ab081112832e3a7faca624598119  numpy-1.14.2-cp35-none-win32.whl
2652e9660be5d074224d14436504f008  numpy-1.14.2-cp35-none-win_amd64.whl
1cdb6cf8d60dfbe99f60639dac38471e  numpy-1.14.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b11c80344b84853b7a24acc51bbe4945  numpy-1.14.2-cp36-cp36m-manylinux1_i686.whl
65c3802c0f25f2d26aa784433643f655  numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
8f9986b323d4215925d6cfa1cd1bc14d  numpy-1.14.2-cp36-none-win32.whl
9d78ceef101313f49fd0b8fed25d889c  numpy-1.14.2-cp36-none-win_amd64.whl
e39878fafb11828983aeec583dda4a06  numpy-1.14.2.tar.gz
080f01a19707cf467393e426382c7619  numpy-1.14.2.zip

SHA256

719d914f564f35cce4dc103808f8297c807c9f0297ac183ed81ae8b5650e698e  numpy-1.14.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0f6a5ed0cd7ab1da11f5c07a8ecada73fc55a70ef7bb6311a4109891341d7277  numpy-1.14.2-cp27-cp27m-manylinux1_i686.whl
d0928076d9bd8a98de44e79b1abe50c1456e7abbb40af7ef58092086f1a6c729  numpy-1.14.2-cp27-cp27m-manylinux1_x86_64.whl
d858423f5ed444d494b15c4cc90a206e1b8c31354c781ac7584da0d21c09c1c3  numpy-1.14.2-cp27-cp27mu-manylinux1_i686.whl
20cac3123d791e4bf8482a580d98d6b5969ba348b9d5364df791ba3a666b660d  numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl
528ce59ded2008f9e8543e0146acb3a98a9890da00adf8904b1e18c82099418b  numpy-1.14.2-cp27-none-win32.whl
56e392b7c738bd70e6f46cf48c8194d3d1dd4c5a59fae4b30c58bb6ef86e5233  numpy-1.14.2-cp27-none-win_amd64.whl
99051e03b445117b26028623f1a487112ddf61a09a27e2d25e6bc07d37d94f25  numpy-1.14.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
768e777cc1ffdbf97c507f65975c8686ebafe0f3dc8925d02ac117acc4669ce9  numpy-1.14.2-cp34-cp34m-manylinux1_i686.whl
675e0f23967ce71067d12b6944add505d5f0a251f819cfb44bdf8ee7072c090d  numpy-1.14.2-cp34-cp34m-manylinux1_x86_64.whl
a958bf9d4834c72dee4f91a0476e7837b8a2966dc6fcfc42c421405f98d0da51  numpy-1.14.2-cp34-none-win32.whl
bb370120de6d26004358611441e07acda26840e41dfedc259d7f8cc613f96495  numpy-1.14.2-cp34-none-win_amd64.whl
f2b1378b63bdb581d5d7af2ec0373c8d40d651941d283a2afd7fc71184b3f570  numpy-1.14.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a1413d06abfa942ca0553bf3bccaff5fdb36d55b84f2248e36228db871147dab  numpy-1.14.2-cp35-cp35m-manylinux1_i686.whl
7f76d406c6b998d6410198dcb82688dcdaec7d846aa87e263ccf52efdcfeba30  numpy-1.14.2-cp35-cp35m-manylinux1_x86_64.whl
a7157c9ac6bddd2908c35ef099e4b643bc0e0ebb4d653deb54891d29258dd329  numpy-1.14.2-cp35-none-win32.whl
0fd65cbbfdbf76bbf80c445d923b3accefea0fe2c2082049e0ce947c81fe1d3f  numpy-1.14.2-cp35-none-win_amd64.whl
8c18ee4dddd5c6a811930c0a7c7947bf16387da3b394725f6063f1366311187d  numpy-1.14.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0739146eaf4985962f07c62f7133aca89f3a600faac891ce6c7f3a1e2afe5272  numpy-1.14.2-cp36-cp36m-manylinux1_i686.whl
07e21f14490324cc1160db101e9b6c1233c33985af4cb1d301dd02650fea1d7f  numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
e6120d63b50e2248219f53302af7ec6fa2a42ed1f37e9cda2c76dbaca65036a7  numpy-1.14.2-cp36-none-win32.whl
6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a840a103888  numpy-1.14.2-cp36-none-win_amd64.whl
ddbcda194f49e0cf0663fa8131cb9d7a3b876d14dea0047d3c5fdfaf20adbb40  numpy-1.14.2.tar.gz
facc6f925c3099ac01a1f03758100772560a0b020fb9d70f210404be08006bcb  numpy-1.14.2.zip