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 6 years ago

==========================
NumPy 1.14.1 Release Notes

This is a bugfix release for some problems reported following the 1.14.0 release. The major
problems fixed are the following.

  • Problems with the new array printing, particularly the printing of complex
    values, Please report any additional problems that may turn up.
  • Problems with np.einsum due to the new optimized=True default. Some
    fixes for optimization have been applied and optimize=False is now the
    default.
  • The sort order in np.unique when axis=<some-number> will now always
    be lexicographic in the subarray elements. In previous NumPy versions there
    was an optimization that could result in sorting the subarrays as unsigned
    byte strings.
  • The change in 1.14.0 that multi-field indexing of structured arrays returns a
    view instead of a copy has been reverted but remains on track for NumPy 1.15.
    Affected users should read the 1.14.1 Numpy User Guide section
    "basics/structured arrays/accessing multiple fields" for advice on how to
    manage this transition.

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 14 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Allan Haldane
  • Charles Harris
  • Daniel Smith
  • Dennis Weyland +
  • Eric Larson
  • Eric Wieser
  • Jarrod Millman
  • Kenichi Maehashi +
  • Marten van Kerkwijk
  • Mathieu Lamarre
  • Sebastian Berg
  • Simon Conseil
  • Simon Gibbons
  • xoviat

Pull requests merged

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

  • #10339: BUG: restrict the config modifications to win32
  • #10368: MAINT: Adjust type promotion in linalg.norm
  • #10375: BUG: add missing paren and remove quotes from repr of fieldless...
  • #10395: MAINT: Update download URL in setup.py.
  • #10396: BUG: fix einsum issue with unicode input and py2
  • #10397: BUG: fix error message not formatted in einsum
  • #10398: DOC: add documentation about how to handle new array printing
  • #10403: BUG: Set einsum optimize parameter default to False.
  • #10424: ENH: Fix repr of np.record objects to match np.void types #10412
  • #10425: MAINT: Update zesty to artful for i386 testing
  • #10431: REL: Add 1.14.1 release notes template
  • #10435: MAINT: Use ValueError for duplicate field names in lookup (backport)
  • #10534: BUG: Provide a better error message for out-of-order fields
  • #10536: BUG: Resize bytes_ columns in genfromtxt (backport of #10401)
  • #10537: BUG: multifield-indexing adds padding bytes: revert for 1.14.1
  • #10539: BUG: fix np.save issue with python 2.7.5
  • #10540: BUG: Add missing DECREF in Py2 int() cast
  • #10541: TST: Add circleci document testing to maintenance/1.14.x
  • #10542: BUG: complex repr has extra spaces, missing + (1.14 backport)
  • #10550: BUG: Set missing exception after malloc
  • #10557: BUG: In numpy.i, clear CARRAY flag if wrapped buffer is not C_CONTIGUOUS.
  • #10558: DEP: Issue FutureWarning when malformed records detected.
  • #10559: BUG: Fix einsum optimize logic for singleton dimensions
  • #10560: BUG: Fix calling ufuncs with a positional output argument.
  • #10561: BUG: Fix various Big-Endian test failures (ppc64)
  • #10562: BUG: Make dtype.descr error for out-of-order fields.
  • #10563: BUG: arrays not being flattened in union1d
  • #10607: MAINT: Update sphinxext submodule hash.
  • #10608: BUG: Revert sort optimization in np.unique.
  • #10609: BUG: infinite recursion in str of 0d subclasses
  • #10610: BUG: Align type definition with generated lapack
  • #10612: BUG/ENH: Improve output for structured non-void types
  • #10622: BUG: deallocate recursive closure in arrayprint.py (1.14 backport)
  • #10624: BUG: Correctly identify comma seperated dtype strings
  • #10629: BUG: deallocate recursive closure in arrayprint.py (backport...
  • #10630: REL: Prepare for 1.14.1 release.

Checksums

MD5

8a56c4b06e859ccad60a85d3486b214a  numpy-1.14.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
94189ecffbc1032df54f570bb6ff490d  numpy-1.14.1-cp27-cp27m-manylinux1_i686.whl
61473860888d024caa1261274620352e  numpy-1.14.1-cp27-cp27m-manylinux1_x86_64.whl
f9f6ada0f110230569cea9d8d2f5416a  numpy-1.14.1-cp27-cp27mu-manylinux1_i686.whl
0c2c6637c5c8ca639e1b7b3fa4ac64cc  numpy-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl
dbae0fec3c033b42695d9df9636ba9a5  numpy-1.14.1-cp27-none-win32.whl
c7ee8517a1a52b90f08651c1f17b6e39  numpy-1.14.1-cp27-none-win_amd64.whl
bb051505823a3f990ea22750a08cd40b  numpy-1.14.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
655f4c67598dfe583fce3075e0152b06  numpy-1.14.1-cp34-cp34m-manylinux1_i686.whl
94cdf22837fdec46d03709fe0338ee09  numpy-1.14.1-cp34-cp34m-manylinux1_x86_64.whl
5b7fc9eb18463356ed8d018a3b486d53  numpy-1.14.1-cp34-none-win32.whl
b261be176aa57dce8a64f4fac169c74b  numpy-1.14.1-cp34-none-win_amd64.whl
196639515a2084dc5b4b86a5ea0247ce  numpy-1.14.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
d897ae36d1487a101714deeb8782b7c5  numpy-1.14.1-cp35-cp35m-manylinux1_i686.whl
12f2c45cc7501dc5a5e670042300f1e6  numpy-1.14.1-cp35-cp35m-manylinux1_x86_64.whl
e94355704fe2f6b3d1bcf6c8f6189df4  numpy-1.14.1-cp35-none-win32.whl
13b79737d10e857ee808a1dfdd2ff01e  numpy-1.14.1-cp35-none-win_amd64.whl
8819860639f492ddf6045a95227624d0  numpy-1.14.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
2b3d5774779e808cef193872dd4f6dbe  numpy-1.14.1-cp36-cp36m-manylinux1_i686.whl
dd2321ea4590ec05d825d8c9a64fd64b  numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl
a5803be2b83c1ec5f36ed9f58a0f848c  numpy-1.14.1-cp36-none-win32.whl
299c92352d2c08baa6a8142971b39295  numpy-1.14.1-cp36-none-win_amd64.whl
0e09f20f62ab9f8a02cb7bd3fd023482  numpy-1.14.1.tar.gz
b8324ef90ac9064cd0eac46b8b388674  numpy-1.14.1.zip

SHA256

e2335d56d2fd9fc4e3a3f2d3148aafec4962682375f429f05c45a64dacf19436  numpy-1.14.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
9b762e78739b6e021124adbea07611682db99cd3fca7f3c3a8b98b8f74ea5699  numpy-1.14.1-cp27-cp27m-manylinux1_i686.whl
7d4c549e41507db4f04ec7cfab5597de8acf7871b16c9cf64cebcb9d39031ca6  numpy-1.14.1-cp27-cp27m-manylinux1_x86_64.whl
b803306c4c201e7dcda0ce1b9a9c87f61a7c7ce43de2c60c8e56147b76849a1a  numpy-1.14.1-cp27-cp27mu-manylinux1_i686.whl
2da8dff91d489fea3e20155d41f4cd680de7d01d9a89fdd0ebb1bee6e72d3800  numpy-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl
6b8c2daacbbffc83b4a2ba83a61aa3ce60c66340b07b962bd27b6c6bb175bee1  numpy-1.14.1-cp27-none-win32.whl
89b9419019c47ec87cf4cfca77d85da4611cc0be636ec87b5290346490b98450  numpy-1.14.1-cp27-none-win_amd64.whl
49880b47d7272f902946dd995f346842c95fe275e2deb3082ef0495f0c718a69  numpy-1.14.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
3d7ddd5bdfb12ec9668edf1aa49a4a3eddb0db4661b57ea431477eb9a2468894  numpy-1.14.1-cp34-cp34m-manylinux1_i686.whl
788e1757f8e409cd805a7cd82993cd9252fa19e334758a4c6eb5a8b334abb084  numpy-1.14.1-cp34-cp34m-manylinux1_x86_64.whl
377def0873bbb1fbdedb14b3275b10a29b1b55619a3f7f775c4e7f9ce2461b9c  numpy-1.14.1-cp34-none-win32.whl
9501c9ccd081977ca5579a3ec4009d6baff6bacb04bf07214aade3324734195a  numpy-1.14.1-cp34-none-win_amd64.whl
a1f5173df8190ef9c6235d260d70ca70c6fb029683ceb66e244c5cc6e335947a  numpy-1.14.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
12cf4b27039b88e407ad66894d99a957ef60fea0eeb442026af325add2ab264d  numpy-1.14.1-cp35-cp35m-manylinux1_i686.whl
4e2fc841c8c642f7fd44591ef856ca409cedba6aea27928df34004c533839eee  numpy-1.14.1-cp35-cp35m-manylinux1_x86_64.whl
e5ade7a69dccbd99c4fdbb95b6d091d941e62ffa588b0ed8fb0a2854118fef3f  numpy-1.14.1-cp35-none-win32.whl
6b1011ffc87d7e2b1b7bcc6dc21bdf177163658746ef778dcd21bf0516b9126c  numpy-1.14.1-cp35-none-win_amd64.whl
a8bc80f69570e11967763636db9b24c1e3e3689881d10ae793cec74cf7a627b6  numpy-1.14.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
81b9d8f6450e752bd82e7d9618fa053df8db1725747880e76fb09710b57f78d0  numpy-1.14.1-cp36-cp36m-manylinux1_i686.whl
e8522cad377cc2ef20fe13aae742cc265172910c98e8a0d6014b1a8d564019e2  numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl
a3d5dd437112292c707e54f47141be2f1100221242f07eda7bd8477f3ddc2252  numpy-1.14.1-cp36-none-win32.whl
c8000a6cbc5140629be8c038c9c9cdb3a1c85ff90bd4180ec99f0f0c73050b5e  numpy-1.14.1-cp36-none-win_amd64.whl
8708a775be9a9a457b80a49193c57bd9d51a8a195ed1f1c4b8e89eaf3aa646ee  numpy-1.14.1.tar.gz
fa0944650d5d3fb95869eaacd8eedbd2d83610c85e271bd9d3495ffa9bc4dc9c  numpy-1.14.1.zip
numpy -

Published by charris almost 7 years ago

==========================
NumPy 1.14.0 Release Notes

Numpy 1.14.0 is the result of seven months of work and contains a large number
of bug fixes and new features, along with several changes with potential
compatibility issues. The major change that users will notice are the
stylistic changes in the way numpy arrays and scalars are printed, a change
that will affect doctests. See below for details on how to preserve the
old style printing when needed.

A major decision affecting future development concerns the schedule for
dropping Python 2.7 support in the runup to 2020. The decision has been made to
support 2.7 for all releases made in 2018, with the last release being
designated a long term release with support for bug fixes extending through
2019. In 2019 support for 2.7 will be dropped in all new releases. More details
can be found in the relevant NEP_.

This release supports Python 2.7 and 3.4 - 3.6.

.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/dropping-python2.7-proposal.rst

Highlights

  • The np.einsum function uses BLAS when possible

  • genfromtxt, loadtxt, fromregex and savetxt can now handle
    files with arbitrary Python supported encoding.

  • Major improvements to printing of NumPy arrays and scalars.

New functions

  • parametrize: decorator added to numpy.testing

  • chebinterpolate: Interpolate function at Chebyshev points.

  • format_float_positional and format_float_scientific : format
    floating-point scalars unambiguously with control of rounding and padding.

  • PyArray_ResolveWritebackIfCopy and PyArray_SetWritebackIfCopyBase,
    new C-API functions useful in achieving PyPy compatibity.

Deprecations

  • Using np.bool_ objects in place of integers is deprecated. Previously
    operator.index(np.bool_) was legal and allowed constructs such as
    [1, 2, 3][np.True_]. That was misleading, as it behaved differently from
    np.array([1, 2, 3])[np.True_].

  • Truth testing of an empty array is deprecated. To check if an array is not
    empty, use array.size > 0.

  • Calling np.bincount with minlength=None is deprecated.
    minlength=0 should be used instead.

  • Calling np.fromstring with the default value of the sep argument is
    deprecated. When that argument is not provided, a broken version of
    np.frombuffer is used that silently accepts unicode strings and -- after
    encoding them as either utf-8 (python 3) or the default encoding
    (python 2) -- treats them as binary data. If reading binary data is
    desired, np.frombuffer should be used directly.

  • The style option of array2string is deprecated in non-legacy printing mode.

  • PyArray_SetUpdateIfCopyBase has been deprecated. For NumPy versions >= 1.14
    use PyArray_SetWritebackIfCopyBase instead, see C API changes below for
    more details.

  • The use of UPDATEIFCOPY arrays is deprecated, see C API changes below
    for details. We will not be dropping support for those arrays, but they are
    not compatible with PyPy.

Future Changes

  • np.issubdtype will stop downcasting dtype-like arguments.
    It might be expected that issubdtype(np.float32, 'float64') and
    issubdtype(np.float32, np.float64) mean the same thing - however, there
    was an undocumented special case that translated the former into
    issubdtype(np.float32, np.floating), giving the surprising result of True.

    This translation now gives a warning that explains what translation is
    occurring. In the future, the translation will be disabled, and the first
    example will be made equivalent to the second.

  • np.linalg.lstsq default for rcond will be changed. The rcond
    parameter to np.linalg.lstsq will change its default to machine precision
    times the largest of the input array dimensions. A FutureWarning is issued
    when rcond is not passed explicitly.

  • a.flat.__array__() will return a writeable copy of a when a is
    non-contiguous. Previously it returned an UPDATEIFCOPY array when a was
    writeable. Currently it returns a non-writeable copy. See gh-7054 for a
    discussion of the issue.

  • Unstructured void array's .item method will return a bytes object. In the
    future, calling .item() on arrays or scalars of np.void datatype will
    return a bytes object instead of a buffer or int array, the same as
    returned by bytes(void_scalar). This may affect code which assumed the
    return value was mutable, which will no longer be the case. A
    FutureWarning is now issued when this would occur.

Compatibility notes

The mask of a masked array view is also a view rather than a copy

There was a FutureWarning about this change in NumPy 1.11.x. In short, it is
now the case that, when changing a view of a masked array, changes to the mask
are propagated to the original. That was not previously the case. This change
affects slices in particular. Note that this does not yet work properly if the
mask of the original array is nomask and the mask of the view is changed.
See gh-5580 for an extended discussion. The original behavior of having a copy
of the mask can be obtained by calling the unshare_mask method of the view.

np.ma.masked is no longer writeable

Attempts to mutate the masked constant now error, as the underlying arrays
are marked readonly. In the past, it was possible to get away with::

# emulating a function that sometimes returns np.ma.masked
val = random.choice([np.ma.masked, 10])
var_arr = np.asarray(val)
val_arr += 1  # now errors, previously changed np.ma.masked.data

np.ma functions producing fill_values have changed

Previously, np.ma.default_fill_value would return a 0d array, but
np.ma.minimum_fill_value and np.ma.maximum_fill_value would return a
tuple of the fields. Instead, all three methods return a structured np.void
object, which is what you would already find in the .fill_value attribute.

Additionally, the dtype guessing now matches that of np.array - so when
passing a python scalar x, maximum_fill_value(x) is always the same as
maximum_fill_value(np.array(x)). Previously x = long(1) on Python 2
violated this assumption.

a.flat.__array__() returns non-writeable arrays when a is non-contiguous

The intent is that the UPDATEIFCOPY array previously returned when a was
non-contiguous will be replaced by a writeable copy in the future. This
temporary measure is aimed to notify folks who expect the underlying array be
modified in this situation that that will no longer be the case. The most
likely places for this to be noticed is when expressions of the form
np.asarray(a.flat) are used, or when a.flat is passed as the out
parameter to a ufunc.

np.tensordot now returns zero array when contracting over 0-length dimension

Previously np.tensordot raised a ValueError when contracting over 0-length
dimension. Now it returns a zero array, which is consistent with the behaviour
of np.dot and np.einsum.

numpy.testing reorganized

This is not expected to cause problems, but possibly something has been left
out. If you experience an unexpected import problem using numpy.testing
let us know.

np.asfarray no longer accepts non-dtypes through the dtype argument

This previously would accept dtype=some_array, with the implied semantics
of dtype=some_array.dtype. This was undocumented, unique across the numpy
functions, and if used would likely correspond to a typo.

1D np.linalg.norm preserves float input types, even for arbitrary orders

Previously, this would promote to float64 when arbitrary orders were
passed, despite not doing so under the simple cases::

>>> f32 = np.float32([1, 2])
>>> np.linalg.norm(f32, 2.0).dtype
dtype('float32')
>>> np.linalg.norm(f32, 2.0001).dtype
dtype('float64')  # numpy 1.13
dtype('float32')  # numpy 1.14

This change affects only float32 and float16 arrays.

count_nonzero(arr, axis=()) now counts over no axes, not all axes

Elsewhere, axis==() is always understood as "no axes", but
count_nonzero had a special case to treat this as "all axes". This was
inconsistent and surprising. The correct way to count over all axes has always
been to pass axis == None.

__init__.py files added to test directories

This is for pytest compatibility in the case of duplicate test file names in
the different directories. As a result, run_module_suite no longer works,
i.e., python <path-to-test-file> results in an error.

.astype(bool) on unstructured void arrays now calls bool on each element

On Python 2, void_array.astype(bool) would always return an array of
True, unless the dtype is V0. On Python 3, this operation would usually
crash. Going forwards, astype matches the behavior of bool(np.void),
considering a buffer of all zeros as false, and anything else as true.
Checks for V0 can still be done with arr.dtype.itemsize == 0.

MaskedArray.squeeze never returns np.ma.masked

np.squeeze is documented as returning a view, but the masked variant would
sometimes return masked, which is not a view. This has been fixed, so that
the result is always a view on the original masked array.
This breaks any code that used masked_arr.squeeze() is np.ma.masked, but
fixes code that writes to the result of .squeeze().

Renamed first parameter of can_cast from from to from_

The previous parameter name from is a reserved keyword in Python, which made
it difficult to pass the argument by name. This has been fixed by renaming
the parameter to from_.

isnat raises TypeError when passed wrong type

The ufunc isnat used to raise a ValueError when it was not passed
variables of type datetime or timedelta. This has been changed to
raising a TypeError.

dtype.__getitem__ raises TypeError when passed wrong type

When indexed with a float, the dtype object used to raise ValueError.

User-defined types now need to implement __str__ and __repr__

Previously, user-defined types could fall back to a default implementation of
__str__ and __repr__ implemented in numpy, but this has now been
removed. Now user-defined types will fall back to the python default
object.__str__ and object.__repr__.

Many changes to array printing, disableable with the new "legacy" printing mode

The str and repr of ndarrays and numpy scalars have been changed in
a variety of ways. These changes are likely to break downstream user's
doctests.

These new behaviors can be disabled to mostly reproduce numpy 1.13 behavior by
enabling the new 1.13 "legacy" printing mode. This is enabled by calling
np.set_printoptions(legacy="1.13"), or using the new legacy argument to
np.array2string, as np.array2string(arr, legacy='1.13').

In summary, the major changes are:

  • For floating-point types:

    • The repr of float arrays often omits a space previously printed
      in the sign position. See the new sign option to np.set_printoptions.
    • Floating-point arrays and scalars use a new algorithm for decimal
      representations, giving the shortest unique representation. This will
      usually shorten float16 fractional output, and sometimes float32 and
      float128 output. float64 should be unaffected. See the new
      floatmode option to np.set_printoptions.
    • Float arrays printed in scientific notation no longer use fixed-precision,
      and now instead show the shortest unique representation.
    • The str of floating-point scalars is no longer truncated in python2.
  • For other data types:

    • Non-finite complex scalars print like nanj instead of nan*j.
    • NaT values in datetime arrays are now properly aligned.
    • Arrays and scalars of np.void datatype are now printed using hex
      notation.
  • For line-wrapping:

    • The "dtype" part of ndarray reprs will now be printed on the next line
      if there isn't space on the last line of array output.
    • The linewidth format option is now always respected.
      The repr or str of an array will never exceed this, unless a single
      element is too wide.
    • The last line of an array string will never have more elements than earlier
      lines.
    • An extra space is no longer inserted on the first line if the elements are
      too wide.
  • For summarization (the use of ... to shorten long arrays):

    • A trailing comma is no longer inserted for str.
      Previously, str(np.arange(1001)) gave
      '[ 0 1 2 ..., 998 999 1000]', which has an extra comma.
    • For arrays of 2-D and beyond, when ... is printed on its own line in
      order to summarize any but the last axis, newlines are now appended to that
      line to match its leading newlines and a trailing space character is
      removed.
  • MaskedArray arrays now separate printed elements with commas, always
    print the dtype, and correctly wrap the elements of long arrays to multiple
    lines. If there is more than 1 dimension, the array attributes are now
    printed in a new "left-justified" printing style.

  • recarray arrays no longer print a trailing space before their dtype, and
    wrap to the right number of columns.

  • 0d arrays no longer have their own idiosyncratic implementations of str
    and repr. The style argument to np.array2string is deprecated.

  • Arrays of bool datatype will omit the datatype in the repr.

  • User-defined dtypes (subclasses of np.generic) now need to
    implement __str__ and __repr__.

Some of these changes are described in more detail below. If you need to retain
the previous behavior for doctests or other reasons, you may want to do
something like::

# FIXME: We need the str/repr formatting used in Numpy < 1.14.
try:
    np.set_printoptions(legacy='1.13')
except TypeError:
    pass

C API changes

PyPy compatible alternative to UPDATEIFCOPY arrays

UPDATEIFCOPY arrays are contiguous copies of existing arrays, possibly with
different dimensions, whose contents are copied back to the original array when
their refcount goes to zero and they are deallocated. Because PyPy does not use
refcounts, they do not function correctly with PyPy. NumPy is in the process of
eliminating their use internally and two new C-API functions,

  • PyArray_SetWritebackIfCopyBase
  • PyArray_ResolveWritebackIfCopy,

have been added together with a complimentary flag,
NPY_ARRAY_WRITEBACKIFCOPY. Using the new functionality also requires that
some flags be changed when new arrays are created, to wit:
NPY_ARRAY_INOUT_ARRAY should be replaced by NPY_ARRAY_INOUT_ARRAY2 and
NPY_ARRAY_INOUT_FARRAY should be replaced by NPY_ARRAY_INOUT_FARRAY2.
Arrays created with these new flags will then have the WRITEBACKIFCOPY
semantics.

If PyPy compatibility is not a concern, these new functions can be ignored,
although there will be a DeprecationWarning. If you do wish to pursue PyPy
compatibility, more information on these functions and their use may be found
in the c-api_ documentation and the example in how-to-extend_.

.. _c-api: https://github.com/numpy/numpy/blob/master/doc/source/reference/c-api.array.rst
.. _how-to-extend: https://github.com/numpy/numpy/blob/master/doc/source/user/c-info.how-to-extend.rst

New Features

Encoding argument for text IO functions

genfromtxt, loadtxt, fromregex and savetxt can now handle files
with arbitrary encoding supported by Python via the encoding argument.
For backward compatibility the argument defaults to the special bytes value
which continues to treat text as raw byte values and continues to pass latin1
encoded bytes to custom converters.
Using any other value (including None for system default) will switch the
functions to real text IO so one receives unicode strings instead of bytes in
the resulting arrays.

External nose plugins are usable by numpy.testing.Tester

numpy.testing.Tester is now aware of nose plugins that are outside the
nose built-in ones. This allows using, for example, nose-timer like
so: np.test(extra_argv=['--with-timer', '--timer-top-n', '20']) to
obtain the runtime of the 20 slowest tests. An extra keyword timer was
also added to Tester.test, so np.test(timer=20) will also report the 20
slowest tests.

parametrize decorator added to numpy.testing

A basic parametrize decorator is now available in numpy.testing. It is
intended to allow rewriting yield based tests that have been deprecated in
pytest so as to facilitate the transition to pytest in the future. The nose
testing framework has not been supported for several years and looks like
abandonware.

The new parametrize decorator does not have the full functionality of the
one in pytest. It doesn't work for classes, doesn't support nesting, and does
not substitute variable names. Even so, it should be adequate to rewrite the
NumPy tests.

chebinterpolate function added to numpy.polynomial.chebyshev

The new chebinterpolate function interpolates a given function at the
Chebyshev points of the first kind. A new Chebyshev.interpolate class
method adds support for interpolation over arbitrary intervals using the scaled
and shifted Chebyshev points of the first kind.

Support for reading lzma compressed text files in Python 3

With Python versions containing the lzma module the text IO functions can
now transparently read from files with xz or lzma extension.

sign option added to np.setprintoptions and np.array2string

This option controls printing of the sign of floating-point types, and may be
one of the characters '-', '+' or ' '. With '+' numpy always prints the sign of
positive values, with ' ' it always prints a space (whitespace character) in
the sign position of positive values, and with '-' it will omit the sign
character for positive values. The new default is '-'.

This new default changes the float output relative to numpy 1.13. The old
behavior can be obtained in 1.13 "legacy" printing mode, see compatibility
notes above.

hermitian option added tonp.linalg.matrix_rank

The new hermitian option allows choosing between standard SVD based matrix
rank calculation and the more efficient eigenvalue based method for
symmetric/hermitian matrices.

threshold and edgeitems options added to np.array2string

These options could previously be controlled using np.set_printoptions, but
now can be changed on a per-call basis as arguments to np.array2string.

concatenate and stack gained an out argument

A preallocated buffer of the desired dtype can now be used for the output of
these functions.

Support for PGI flang compiler on Windows

The PGI flang compiler is a Fortran front end for LLVM released by NVIDIA under
the Apache 2 license. It can be invoked by ::

python setup.py config --compiler=clang --fcompiler=flang install

There is little experience with this new compiler, so any feedback from people
using it will be appreciated.

Improvements

Numerator degrees of freedom in random.noncentral_f need only be positive.

Prior to NumPy 1.14.0, the numerator degrees of freedom needed to be > 1, but
the distribution is valid for values > 0, which is the new requirement.

The GIL is released for all np.einsum variations

Some specific loop structures which have an accelerated loop version
did not release the GIL prior to NumPy 1.14.0. This oversight has been
fixed.

The np.einsum function will use BLAS when possible and optimize by default

The np.einsum function will now call np.tensordot when appropriate.
Because np.tensordot uses BLAS when possible, that will speed up execution.
By default, np.einsum will also attempt optimization as the overhead is
small relative to the potential improvement in speed.

f2py now handles arrays of dimension 0

f2py now allows for the allocation of arrays of dimension 0. This allows
for more consistent handling of corner cases downstream.

numpy.distutils supports using MSVC and mingw64-gfortran together

Numpy distutils now supports using Mingw64 gfortran and MSVC compilers
together. This enables the production of Python extension modules on Windows
containing Fortran code while retaining compatibility with the
binaries distributed by Python.org. Not all use cases are supported,
but most common ways to wrap Fortran for Python are functional.

Compilation in this mode is usually enabled automatically, and can be
selected via the --fcompiler and --compiler options to
setup.py. Moreover, linking Fortran codes to static OpenBLAS is
supported; by default a gfortran compatible static archive
openblas.a is looked for.

np.linalg.pinv now works on stacked matrices

Previously it was limited to a single 2d array.

numpy.save aligns data to 64 bytes instead of 16

Saving NumPy arrays in the npy format with numpy.save inserts
padding before the array data to align it at 64 bytes. Previously
this was only 16 bytes (and sometimes less due to a bug in the code
for version 2). Now the alignment is 64 bytes, which matches the
widest SIMD instruction set commonly available, and is also the most
common cache line size. This makes npy files easier to use in
programs which open them with mmap, especially on Linux where an
mmap offset must be a multiple of the page size.

NPZ files now can be written without using temporary files

In Python 3.6+ numpy.savez and numpy.savez_compressed now write
directly to a ZIP file, without creating intermediate temporary files.

Better support for empty structured and string types

Structured types can contain zero fields, and string dtypes can contain zero
characters. Zero-length strings still cannot be created directly, and must be
constructed through structured dtypes::

str0 = np.empty(10, np.dtype([('v', str, N)]))['v']
void0 = np.empty(10, np.void)

It was always possible to work with these, but the following operations are
now supported for these arrays:

  • arr.sort()
  • arr.view(bytes)
  • arr.resize(...)
  • pickle.dumps(arr)

Support for decimal.Decimal in np.lib.financial

Unless otherwise stated all functions within the financial package now
support using the decimal.Decimal built-in type.

Float printing now uses "dragon4" algorithm for shortest decimal representation

The str and repr of floating-point values (16, 32, 64 and 128 bit) are
now printed to give the shortest decimal representation which uniquely
identifies the value from others of the same type. Previously this was only
true for float64 values. The remaining float types will now often be shorter
than in numpy 1.13. Arrays printed in scientific notation now also use the
shortest scientific representation, instead of fixed precision as before.

Additionally, the str of float scalars scalars will no longer be truncated
in python2, unlike python2 floats. np.double scalars now have a str
and repr identical to that of a python3 float.

New functions np.format_float_scientific and np.format_float_positional
are provided to generate these decimal representations.

A new option floatmode has been added to np.set_printoptions and
np.array2string, which gives control over uniqueness and rounding of
printed elements in an array. The new default is floatmode='maxprec' with
precision=8, which will print at most 8 fractional digits, or fewer if an
element can be uniquely represented with fewer. A useful new mode is
floatmode="unique", which will output enough digits to specify the array
elements uniquely.

Numpy complex-floating-scalars with values like inf*j or nan*j now
print as infj and nanj, like the pure-python complex type.

The FloatFormat and LongFloatFormat classes are deprecated and should
both be replaced by FloatingFormat. Similarly ComplexFormat and
LongComplexFormat should be replaced by ComplexFloatingFormat.

void datatype elements are now printed in hex notation

A hex representation compatible with the python bytes type is now printed
for unstructured np.void elements, e.g., V4 datatype. Previously, in
python2 the raw void data of the element was printed to stdout, or in python3
the integer byte values were shown.

printing style for void datatypes is now independently customizable

The printing style of np.void arrays is now independently customizable
using the formatter argument to np.set_printoptions, using the
'void' key, instead of the catch-all numpystr key as before.

Reduced memory usage of np.loadtxt

np.loadtxt now reads files in chunks instead of all at once which decreases
its memory usage significantly for large files.

Changes

Multiple-field indexing/assignment of structured arrays

The indexing and assignment of structured arrays with multiple fields has
changed in a number of ways, as warned about in previous releases.

First, 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 have extra padding bytes corresponding to
intervening fields in the original array, unlike the copy in 1.13, which will
affect code such as arr[['f1', 'f3']].view(newdtype).

Second, assignment between structured arrays will now occur "by position"
instead of "by field name". The Nth field of the destination will be set to the
Nth field of the source regardless of field name, unlike in numpy versions 1.6
to 1.13 in which fields in the destination array were set to the
identically-named field in the source array or to 0 if the source did not have
a field.

Correspondingly, the order of fields in a structured dtypes now matters when
computing dtype equality. For example, with the dtypes ::

x = dtype({'names': ['A', 'B'], 'formats': ['i4', 'f4'], 'offsets': [0, 4]})
y = dtype({'names': ['B', 'A'], 'formats': ['f4', 'i4'], 'offsets': [4, 0]})

the expression x == y will now return False, unlike before.
This makes dictionary based dtype specifications like
dtype({'a': ('i4', 0), 'b': ('f4', 4)}) dangerous in python < 3.6
since dict key order is not preserved in those versions.

Assignment from a structured array to a boolean array now raises a ValueError,
unlike in 1.13, where it always set the destination elements to True.

Assignment from structured array with more than one field to a non-structured
array now raises a ValueError. In 1.13 this copied just the first field of the
source to the destination.

Using field "titles" in multiple-field indexing is now disallowed, as is
repeating a field name in a multiple-field index.

The documentation for structured arrays in the user guide has been
significantly updated to reflect these changes.

Integer and Void scalars are now unaffected by np.set_string_function

Previously, unlike most other numpy scalars, the str and repr of
integer and void scalars could be controlled by np.set_string_function.
This is no longer possible.

0d array printing changed, style arg of array2string deprecated

Previously the str and repr of 0d arrays had idiosyncratic
implementations which returned str(a.item()) and 'array(' + repr(a.item()) + ')' respectively for 0d array a, unlike both numpy
scalars and higher dimension ndarrays.

Now, the str of a 0d array acts like a numpy scalar using str(a[()])
and the repr acts like higher dimension arrays using formatter(a[()]),
where formatter can be specified using np.set_printoptions. The
style argument of np.array2string is deprecated.

This new behavior is disabled in 1.13 legacy printing mode, see compatibility
notes above.

Seeding RandomState using an array requires a 1-d array

RandomState previously would accept empty arrays or arrays with 2 or more
dimensions, which resulted in either a failure to seed (empty arrays) or for
some of the passed values to be ignored when setting the seed.

MaskedArray objects show a more useful repr

The repr of a MaskedArray is now closer to the python code that would
produce it, with arrays now being shown with commas and dtypes. Like the other
formatting changes, this can be disabled with the 1.13 legacy printing mode in
order to help transition doctests.

The repr of np.polynomial classes is more explicit

It now shows the domain and window parameters as keyword arguments to make
them more clear::

>>> np.polynomial.Polynomial(range(4))
Polynomial([0.,  1.,  2.,  3.], domain=[-1,  1], window=[-1,  1])

Checksums

MD5

dddfd1effddd4b73120bfa0f31a27f30  numpy-1.14.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
ab7e3518c7fe2a0d8e3c1e90c32ab57b  numpy-1.14.0-cp27-cp27m-manylinux1_i686.whl
8ba61f88afea560cc93ffddc9ea717d8  numpy-1.14.0-cp27-cp27m-manylinux1_x86_64.whl
edea7b57d4d924173c9c6d8125affe4e  numpy-1.14.0-cp27-cp27mu-manylinux1_i686.whl
bb048ccc49572e5e661ec7ead183272d  numpy-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl
23248896d89fd09ef06aecbdc1e74eb7  numpy-1.14.0-cp27-none-win32.whl
09bef789f8d9352cafe98a6773c53f3a  numpy-1.14.0-cp27-none-win_amd64.whl
8bc2cc282df9597fe4c5fda72d0ff851  numpy-1.14.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
c9ce8e4de0293585ad8455a829cdbdff  numpy-1.14.0-cp34-cp34m-manylinux1_i686.whl
8179996e99adfbe7c66c5a9f7ad37139  numpy-1.14.0-cp34-cp34m-manylinux1_x86_64.whl
bf839d99514ecc03da1a2dc42808c1c7  numpy-1.14.0-cp34-none-win32.whl
80ead56627e40a00d0832793f5798ce8  numpy-1.14.0-cp34-none-win_amd64.whl
1a58fbaea199e425b71b3bfb1276d957  numpy-1.14.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
00cbdb6d9aa1eca97ecdb73a2705730b  numpy-1.14.0-cp35-cp35m-manylinux1_i686.whl
47de646ff0d4591431030ee93412f9f3  numpy-1.14.0-cp35-cp35m-manylinux1_x86_64.whl
f42aab8c9d6a21f60b051d6ea0b33425  numpy-1.14.0-cp35-none-win32.whl
b6d917bb34760e0f659c671efc08c602  numpy-1.14.0-cp35-none-win_amd64.whl
5a6456f4471b2f7d03fec5759e929544  numpy-1.14.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
3c72836ee01e7b88d7cebee0a1c94c6e  numpy-1.14.0-cp36-cp36m-manylinux1_i686.whl
34f763b99cc39ca3224c158ec82e2b39  numpy-1.14.0-cp36-cp36m-manylinux1_x86_64.whl
3bee8e2e4414a9df909d6510bd803aa1  numpy-1.14.0-cp36-none-win32.whl
f3db47f66b406f2803b681051f452f6e  numpy-1.14.0-cp36-none-win_amd64.whl
c573e2d2f26a5786d5198a660f87d8e4  numpy-1.14.0.tar.gz
c12d4bf380ac925fcdc8a59ada6c3298  numpy-1.14.0.zip

SHA256

428cd3c0b197cf857671353d8c85833193921af9fafcc169a1f29c7185833d50  numpy-1.14.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
a476e437d73e5754aa66e1e75840d0163119c3911b7361f4cd06985212a3c3fb  numpy-1.14.0-cp27-cp27m-manylinux1_i686.whl
289ff717138cd9aa133adcbd3c3e284458b9c8230db4d42b39083a3407370317  numpy-1.14.0-cp27-cp27m-manylinux1_x86_64.whl
c5eccb4bf96dbb2436c61bb3c2658139e779679b6ae0d04c5e268e6608b58053  numpy-1.14.0-cp27-cp27mu-manylinux1_i686.whl
75471acf298d455b035226cc609a92aee42c4bb6aa71def85f77fa2c2b646b61  numpy-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl
5c54fb98ecf42da59ed93736d1c071842482b18657eb16ba6e466bd873e1b923  numpy-1.14.0-cp27-none-win32.whl
9ddf384ac3aacb72e122a8207775cc29727cbd9c531ee1a4b95754f24f42f7f3  numpy-1.14.0-cp27-none-win_amd64.whl
781d3197da49c421a07f250750de70a52c42af08ca02a2f7bdb571c0625ae7eb  numpy-1.14.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
93b26d6c06a22e64d56aaca32aaaffd27a4143db0ac2f21a048f0b571f2bfc55  numpy-1.14.0-cp34-cp34m-manylinux1_i686.whl
b2547f57d05ba59df4289493254f29f4c9082d255f1f97b7e286f40f453e33a1  numpy-1.14.0-cp34-cp34m-manylinux1_x86_64.whl
eef6af1c752eef538a96018ef9bdf8e37bbf28aab50a1436501a4aa47a6467df  numpy-1.14.0-cp34-none-win32.whl
ff8a4b2c3ac831964f529a2da506c28d002562b230261ae5c16885f5f53d2e75  numpy-1.14.0-cp34-none-win_amd64.whl
194074058c22a4066e1b6a4ea432486ee468d24ab16f13630c1030409e6b8666  numpy-1.14.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
4e13f1a848fde960dea33702770265837c72b796a6a3eaac7528cfe75ddefadd  numpy-1.14.0-cp35-cp35m-manylinux1_i686.whl
91101216d72749df63968d86611b549438fb18af2c63849c01f9a897516133c7  numpy-1.14.0-cp35-cp35m-manylinux1_x86_64.whl
97507349abb7d1f6b76b877258defe8720833881dc7e7fd052bac90c88587387  numpy-1.14.0-cp35-none-win32.whl
1479b46b6040b5c689831496354c8859c456b152d37315673a0c18720b41223b  numpy-1.14.0-cp35-none-win_amd64.whl
98b1ac79c160e36093d7914244e40ee1e7164223e795aa2c71dcce367554e646  numpy-1.14.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
24bbec9a199f938eab75de8390f410969bc33c218e5430fa1ae9401b00865255  numpy-1.14.0-cp36-cp36m-manylinux1_i686.whl
7880f412543e96548374a4bb1d75e4cdb8cad80f3a101ed0f8d0e0428f719c1c  numpy-1.14.0-cp36-cp36m-manylinux1_x86_64.whl
6112f152b76a28c450bbf665da11757078a724a90330112f5b7ea2d6b6cefd67  numpy-1.14.0-cp36-none-win32.whl
7c5276763646480143d5f3a6c2acb2885460c765051a1baf4d5070f63d05010f  numpy-1.14.0-cp36-none-win_amd64.whl
c45d99134bb07600e916537c51c22e87f9e0c44b05d71018ab4907e195f007ce  numpy-1.14.0.tar.gz
3de643935b212307b420248018323a44ec51987a336d1d747c1322afc3c099fb  numpy-1.14.0.zip
numpy -

Published by charris almost 7 years ago

==========================
NumPy 1.14.0 Release Notes

Numpy 1.14.0 is the result of seven months of work and contains a large number
of bug fixes and new features, along with several changes with potential
compatibility issues. The major change that users will notice are the
stylistic changes in the way numpy arrays and scalars are printed, a change
that will affect doctests. See below for details on how to preserve the
old style printing when needed.

A major decision affecting future development concerns the schedule for
dropping Python 2.7 support in the runup to 2020. The decision has been made to
support 2.7 for all releases made in 2018, with the last release being
designated a long term release with support for bug fixes extending through
2019. In 2019 support for 2.7 will be dropped in all new releases. More details
can be found in the relevant NEP.

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

  • The np.einsum function uses BLAS when possible

  • genfromtxt, loadtxt, fromregex and savetxt can now handle
    files with arbitrary Python supported encoding.

  • Major improvements to printing of NumPy arrays and scalars.

New functions

  • parametrize: decorator added to numpy.testing

  • chebinterpolate: Interpolate function at Chebyshev points.

  • format_float_positional and format_float_scientific : format
    floating-point scalars unambiguously with control of rounding and padding.

  • PyArray_ResolveWritebackIfCopy and PyArray_SetWritebackIfCopyBase,
    new C-API functions useful in achieving PyPy compatibity.

Deprecations

  • Using np.bool_ objects in place of integers is deprecated. Previously
    operator.index(np.bool_) was legal and allowed constructs such as
    [1, 2, 3][np.True_]. That was misleading, as it behaved differently from
    np.array([1, 2, 3])[np.True_].

  • Truth testing of an empty array is deprecated. To check if an array is not
    empty, use array.size > 0.

  • Calling np.bincount with minlength=None is deprecated.
    minlength=0 should be used instead.

  • Calling np.fromstring with the default value of the sep argument is
    deprecated. When that argument is not provided, a broken version of
    np.frombuffer is used that silently accepts unicode strings and -- after
    encoding them as either utf-8 (python 3) or the default encoding
    (python 2) -- treats them as binary data. If reading binary data is
    desired, np.frombuffer should be used directly.

  • The style option of array2string is deprecated in non-legacy printing mode.

  • PyArray_SetUpdateIfCopyBase has been deprecated. For NumPy versions >= 1.14
    use PyArray_SetWritebackIfCopyBase instead, see C API changes below for
    more details.

  • The use of UPDATEIFCOPY arrays is deprecated, see C API changes below
    for details. We will not be dropping support for those arrays, but they are
    not compatible with PyPy.

Future Changes

  • np.issubdtype will stop downcasting dtype-like arguments.
    It might be expected that issubdtype(np.float32, 'float64') and
    issubdtype(np.float32, np.float64) mean the same thing - however, there
    was an undocumented special case that translated the former into
    issubdtype(np.float32, np.floating), giving the surprising result of True.

    This translation now gives a warning that explains what translation is
    occurring. In the future, the translation will be disabled, and the first
    example will be made equivalent to the second.

  • np.linalg.lstsq default for rcond will be changed. The rcond
    parameter to np.linalg.lstsq will change its default to machine precision
    times the largest of the input array dimensions. A FutureWarning is issued
    when rcond is not passed explicitly.

  • a.flat.__array__() will return a writeable copy of a when a is
    non-contiguous. Previously it returned an UPDATEIFCOPY array when a was
    writeable. Currently it returns a non-writeable copy. See gh-7054 for a
    discussion of the issue.

  • Unstructured void array's .item method will return a bytes object. In the
    future, calling .item() on arrays or scalars of np.void datatype will
    return a bytes object instead of a buffer or int array, the same as
    returned by bytes(void_scalar). This may affect code which assumed the
    return value was mutable, which will no longer be the case. A
    FutureWarning is now issued when this would occur.

Compatibility notes

The mask of a masked array view is also a view rather than a copy

There was a FutureWarning about this change in NumPy 1.11.x. In short, it is
now the case that, when changing a view of a masked array, changes to the mask
are propagated to the original. That was not previously the case. This change
affects slices in particular. Note that this does not yet work properly if the
mask of the original array is nomask and the mask of the view is changed.
See gh-5580 for an extended discussion. The original behavior of having a copy
of the mask can be obtained by calling the unshare_mask method of the view.

np.ma.masked is no longer writeable

Attempts to mutate the masked constant now error, as the underlying arrays
are marked readonly. In the past, it was possible to get away with::

# emulating a function that sometimes returns np.ma.masked
val = random.choice([np.ma.masked, 10])
var_arr = np.asarray(val)
val_arr += 1  # now errors, previously changed np.ma.masked.data

np.ma functions producing fill_values have changed

Previously, np.ma.default_fill_value would return a 0d array, but
np.ma.minimum_fill_value and np.ma.maximum_fill_value would return a
tuple of the fields. Instead, all three methods return a structured np.void
object, which is what you would already find in the .fill_value attribute.

Additionally, the dtype guessing now matches that of np.array - so when
passing a python scalar x, maximum_fill_value(x) is always the same as
maximum_fill_value(np.array(x)). Previously x = long(1) on Python 2
violated this assumption.

a.flat.__array__() returns non-writeable arrays when a is non-contiguous

The intent is that the UPDATEIFCOPY array previously returned when a was
non-contiguous will be replaced by a writeable copy in the future. This
temporary measure is aimed to notify folks who expect the underlying array be
modified in this situation that that will no longer be the case. The most
likely places for this to be noticed is when expressions of the form
np.asarray(a.flat) are used, or when a.flat is passed as the out
parameter to a ufunc.

np.tensordot now returns zero array when contracting over 0-length dimension

Previously np.tensordot raised a ValueError when contracting over 0-length
dimension. Now it returns a zero array, which is consistent with the behaviour
of np.dot and np.einsum.

numpy.testing reorganized

This is not expected to cause problems, but possibly something has been left
out. If you experience an unexpected import problem using numpy.testing
let us know.

np.asfarray no longer accepts non-dtypes through the dtype argument

This previously would accept dtype=some_array, with the implied semantics
of dtype=some_array.dtype. This was undocumented, unique across the numpy
functions, and if used would likely correspond to a typo.

1D np.linalg.norm preserves float input types, even for arbitrary orders

Previously, this would promote to float64 when arbitrary orders were
passed, despite not doing so under the simple cases::

>>> f32 = np.float32([1, 2])
>>> np.linalg.norm(f32, 2.0).dtype
dtype('float32')
>>> np.linalg.norm(f32, 2.0001).dtype
dtype('float64')  # numpy 1.13
dtype('float32')  # numpy 1.14

This change affects only float32 and float16 arrays.

count_nonzero(arr, axis=()) now counts over no axes, not all axes

Elsewhere, axis==() is always understood as "no axes", but
count_nonzero had a special case to treat this as "all axes". This was
inconsistent and surprising. The correct way to count over all axes has always
been to pass axis == None.

__init__.py files added to test directories

This is for pytest compatibility in the case of duplicate test file names in
the different directories. As a result, run_module_suite no longer works,
i.e., python <path-to-test-file> results in an error.

.astype(bool) on unstructured void arrays now calls bool on each element

On Python 2, void_array.astype(bool) would always return an array of
True, unless the dtype is V0. On Python 3, this operation would usually
crash. Going forwards, astype matches the behavior of bool(np.void),
considering a buffer of all zeros as false, and anything else as true.
Checks for V0 can still be done with arr.dtype.itemsize == 0.

MaskedArray.squeeze never returns np.ma.masked

np.squeeze is documented as returning a view, but the masked variant would
sometimes return masked, which is not a view. This has been fixed, so that
the result is always a view on the original masked array.
This breaks any code that used masked_arr.squeeze() is np.ma.masked, but
fixes code that writes to the result of .squeeze().

Renamed first parameter of can_cast from from to from_

The previous parameter name from is a reserved keyword in Python, which made
it difficult to pass the argument by name. This has been fixed by renaming
the parameter to from_.

isnat raises TypeError when passed wrong type

The ufunc isnat used to raise a ValueError when it was not passed
variables of type datetime or timedelta. This has been changed to
raising a TypeError.

dtype.__getitem__ raises TypeError when passed wrong type

When indexed with a float, the dtype object used to raise ValueError.

User-defined types now need to implement __str__ and __repr__

Previously, user-defined types could fall back to a default implementation of
__str__ and __repr__ implemented in numpy, but this has now been
removed. Now user-defined types will fall back to the python default
object.__str__ and object.__repr__.

Many changes to array printing, disableable with the new "legacy" printing mode

The str and repr of ndarrays and numpy scalars have been changed in
a variety of ways. These changes are likely to break downstream user's
doctests.

These new behaviors can be disabled to mostly reproduce numpy 1.13 behavior by
enabling the new 1.13 "legacy" printing mode. This is enabled by calling
np.set_printoptions(legacy="1.13"), or using the new legacy argument to
np.array2string, as np.array2string(arr, legacy='1.13').

In summary, the major changes are:

  • For floating-point types:

    • The repr of float arrays often omits a space previously printed
      in the sign position. See the new sign option to np.set_printoptions.
    • Floating-point arrays and scalars use a new algorithm for decimal
      representations, giving the shortest unique representation. This will
      usually shorten float16 fractional output, and sometimes float32 and
      float128 output. float64 should be unaffected. See the new
      floatmode option to np.set_printoptions.
    • Float arrays printed in scientific notation no longer use fixed-precision,
      and now instead show the shortest unique representation.
    • The str of floating-point scalars is no longer truncated in python2.
  • For other data types:

    • Non-finite complex scalars print like nanj instead of nan*j.
    • NaT values in datetime arrays are now properly aligned.
    • Arrays and scalars of np.void datatype are now printed using hex
      notation.
  • For line-wrapping:

    • The "dtype" part of ndarray reprs will now be printed on the next line
      if there isn't space on the last line of array output.
    • The linewidth format option is now always respected.
      The repr or str of an array will never exceed this, unless a single
      element is too wide.
    • The last line of an array string will never have more elements than earlier
      lines.
    • An extra space is no longer inserted on the first line if the elements are
      too wide.
  • For summarization (the use of ... to shorten long arrays):

    • A trailing comma is no longer inserted for str.
      Previously, str(np.arange(1001)) gave
      '[ 0 1 2 ..., 998 999 1000]', which has an extra comma.
    • For arrays of 2-D and beyond, when ... is printed on its own line in
      order to summarize any but the last axis, newlines are now appended to that
      line to match its leading newlines and a trailing space character is
      removed.
  • MaskedArray arrays now separate printed elements with commas, always
    print the dtype, and correctly wrap the elements of long arrays to multiple
    lines. If there is more than 1 dimension, the array attributes are now
    printed in a new "left-justified" printing style.

  • recarray arrays no longer print a trailing space before their dtype, and
    wrap to the right number of columns.

  • 0d arrays no longer have their own idiosyncratic implementations of str
    and repr. The style argument to np.array2string is deprecated.

  • Arrays of bool datatype will omit the datatype in the repr.

  • User-defined dtypes (subclasses of np.generic) now need to
    implement __str__ and __repr__.

Some of these changes are described in more detail below.

C API changes

PyPy compatible alternative to UPDATEIFCOPY arrays

UPDATEIFCOPY arrays are contiguous copies of existing arrays, possibly with
different dimensions, whose contents are copied back to the original array when
their refcount goes to zero and they are deallocated. Because PyPy does not use
refcounts, they do not function correctly with PyPy. NumPy is in the process of
eliminating their use internally and two new C-API functions,

  • PyArray_SetWritebackIfCopyBase
  • PyArray_ResolveWritebackIfCopy,

have been added together with a complimentary flag,
NPY_ARRAY_WRITEBACKIFCOPY. Using the new functionality also requires that
some flags be changed when new arrays are created, to wit:
NPY_ARRAY_INOUT_ARRAY should be replaced by NPY_ARRAY_INOUT_ARRAY2 and
NPY_ARRAY_INOUT_FARRAY should be replaced by NPY_ARRAY_INOUT_FARRAY2.
Arrays created with these new flags will then have the WRITEBACKIFCOPY
semantics.

If PyPy compatibility is not a concern, these new functions can be ignored,
although there will be a DeprecationWarning. If you do wish to pursue PyPy
compatibility, more information on these functions and their use may be found
in the c-api_ documentation and the example in how-to-extend_.

.. _c-api: https://github.com/numpy/numpy/blob/master/doc/source/reference/c-api.array.rst
.. _how-to-extend: https://github.com/numpy/numpy/blob/master/doc/source/user/c-info.how-to-extend.rst

New Features

Encoding argument for text IO functions

genfromtxt, loadtxt, fromregex and savetxt can now handle files
with arbitrary encoding supported by Python via the encoding argument.
For backward compatibility the argument defaults to the special bytes value
which continues to treat text as raw byte values and continues to pass latin1
encoded bytes to custom converters.
Using any other value (including None for system default) will switch the
functions to real text IO so one receives unicode strings instead of bytes in
the resulting arrays.

External nose plugins are usable by numpy.testing.Tester

numpy.testing.Tester is now aware of nose plugins that are outside the
nose built-in ones. This allows using, for example, nose-timer like
so: np.test(extra_argv=['--with-timer', '--timer-top-n', '20']) to
obtain the runtime of the 20 slowest tests. An extra keyword timer was
also added to Tester.test, so np.test(timer=20) will also report the 20
slowest tests.

parametrize decorator added to numpy.testing

A basic parametrize decorator is now available in numpy.testing. It is
intended to allow rewriting yield based tests that have been deprecated in
pytest so as to facilitate the transition to pytest in the future. The nose
testing framework has not been supported for several years and looks like
abandonware.

The new parametrize decorator does not have the full functionality of the
one in pytest. It doesn't work for classes, doesn't support nesting, and does
not substitute variable names. Even so, it should be adequate to rewrite the
NumPy tests.

chebinterpolate function added to numpy.polynomial.chebyshev

The new chebinterpolate function interpolates a given function at the
Chebyshev points of the first kind. A new Chebyshev.interpolate class
method adds support for interpolation over arbitrary intervals using the scaled
and shifted Chebyshev points of the first kind.

Support for reading lzma compressed text files in Python 3

With Python versions containing the lzma module the text IO functions can
now transparently read from files with xz or lzma extension.

sign option added to np.setprintoptions and np.array2string

This option controls printing of the sign of floating-point types, and may be
one of the characters '-', '+' or ' '. With '+' numpy always prints the sign of
positive values, with ' ' it always prints a space (whitespace character) in
the sign position of positive values, and with '-' it will omit the sign
character for positive values. The new default is '-'.

This new default changes the float output relative to numpy 1.13. The old
behavior can be obtained in 1.13 "legacy" printing mode, see compatibility
notes above.

hermitian option added tonp.linalg.matrix_rank

The new hermitian option allows choosing between standard SVD based matrix
rank calculation and the more efficient eigenvalue based method for
symmetric/hermitian matrices.

threshold and edgeitems options added to np.array2string

These options could previously be controlled using np.set_printoptions, but
now can be changed on a per-call basis as arguments to np.array2string.

concatenate and stack gained an out argument

A preallocated buffer of the desired dtype can now be used for the output of
these functions.

Support for PGI flang compiler on Windows

The PGI flang compiler is a Fortran front end for LLVM released by NVIDIA under
the Apache 2 license. It can be invoked by ::

python setup.py config --compiler=clang --fcompiler=flang install

There is little experience with this new compiler, so any feedback from people
using it will be appreciated.

Improvements

Numerator degrees of freedom in random.noncentral_f need only be positive.

Prior to NumPy 1.14.0, the numerator degrees of freedom needed to be > 1, but
the distribution is valid for values > 0, which is the new requirement.

The GIL is released for all np.einsum variations

Some specific loop structures which have an accelerated loop version
did not release the GIL prior to NumPy 1.14.0. This oversight has been
fixed.

The np.einsum function will use BLAS when possible and optimize by default

The np.einsum function will now call np.tensordot when appropriate.
Because np.tensordot uses BLAS when possible, that will speed up execution.
By default, np.einsum will also attempt optimization as the overhead is
small relative to the potential improvement in speed.

f2py now handles arrays of dimension 0

f2py now allows for the allocation of arrays of dimension 0. This allows
for more consistent handling of corner cases downstream.

numpy.distutils supports using MSVC and mingw64-gfortran together

Numpy distutils now supports using Mingw64 gfortran and MSVC compilers
together. This enables the production of Python extension modules on Windows
containing Fortran code while retaining compatibility with the
binaries distributed by Python.org. Not all use cases are supported,
but most common ways to wrap Fortran for Python are functional.

Compilation in this mode is usually enabled automatically, and can be
selected via the --fcompiler and --compiler options to
setup.py. Moreover, linking Fortran codes to static OpenBLAS is
supported; by default a gfortran compatible static archive
openblas.a is looked for.

np.linalg.pinv now works on stacked matrices

Previously it was limited to a single 2d array.

numpy.save aligns data to 64 bytes instead of 16

Saving NumPy arrays in the npy format with numpy.save inserts
padding before the array data to align it at 64 bytes. Previously
this was only 16 bytes (and sometimes less due to a bug in the code
for version 2). Now the alignment is 64 bytes, which matches the
widest SIMD instruction set commonly available, and is also the most
common cache line size. This makes npy files easier to use in
programs which open them with mmap, especially on Linux where an
mmap offset must be a multiple of the page size.

NPZ files now can be written without using temporary files

In Python 3.6+ numpy.savez and numpy.savez_compressed now write
directly to a ZIP file, without creating intermediate temporary files.

Better support for empty structured and string types

Structured types can contain zero fields, and string dtypes can contain zero
characters. Zero-length strings still cannot be created directly, and must be
constructed through structured dtypes::

str0 = np.empty(10, np.dtype([('v', str, N)]))['v']
void0 = np.empty(10, np.void)

It was always possible to work with these, but the following operations are
now supported for these arrays:

  • arr.sort()
  • arr.view(bytes)
  • arr.resize(...)
  • pickle.dumps(arr)

Support for decimal.Decimal in np.lib.financial

Unless otherwise stated all functions within the financial package now
support using the decimal.Decimal built-in type.

Float printing now uses "dragon4" algorithm for shortest decimal representation

The str and repr of floating-point values (16, 32, 64 and 128 bit) are
now printed to give the shortest decimal representation which uniquely
identifies the value from others of the same type. Previously this was only
true for float64 values. The remaining float types will now often be shorter
than in numpy 1.13. Arrays printed in scientific notation now also use the
shortest scientific representation, instead of fixed precision as before.

Additionally, the str of float scalars scalars will no longer be truncated
in python2, unlike python2 floats. np.double scalars now have a str
and repr identical to that of a python3 float.

New functions np.format_float_scientific and np.format_float_positional
are provided to generate these decimal representations.

A new option floatmode has been added to np.set_printoptions and
np.array2string, which gives control over uniqueness and rounding of
printed elements in an array. The new default is floatmode='maxprec' with
precision=8, which will print at most 8 fractional digits, or fewer if an
element can be uniquely represented with fewer. A useful new mode is
floatmode="unique", which will output enough digits to specify the array
elements uniquely.

Numpy complex-floating-scalars with values like inf*j or nan*j now
print as infj and nanj, like the pure-python complex type.

The FloatFormat and LongFloatFormat classes are deprecated and should
both be replaced by FloatingFormat. Similarly ComplexFormat and
LongComplexFormat should be replaced by ComplexFloatingFormat.

void datatype elements are now printed in hex notation

A hex representation compatible with the python bytes type is now printed
for unstructured np.void elements, e.g., V4 datatype. Previously, in
python2 the raw void data of the element was printed to stdout, or in python3
the integer byte values were shown.

printing style for void datatypes is now independently customizable

The printing style of np.void arrays is now independently customizable
using the formatter argument to np.set_printoptions, using the
'void' key, instead of the catch-all numpystr key as before.

Reduced memory usage of np.loadtxt

np.loadtxt now reads files in chunks instead of all at once which decreases
its memory usage significantly for large files.

Changes

Multiple-field indexing/assignment of structured arrays

The indexing and assignment of structured arrays with multiple fields has
changed in a number of ways, as warned about in previous releases.

First, 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 have extra padding bytes corresponding to
intervening fields in the original array, unlike the copy in 1.13, which will
affect code such as arr[['f1', 'f3']].view(newdtype).

Second, assignment between structured arrays will now occur "by position"
instead of "by field name". The Nth field of the destination will be set to the
Nth field of the source regardless of field name, unlike in numpy versions 1.6
to 1.13 in which fields in the destination array were set to the
identically-named field in the source array or to 0 if the source did not have
a field.

Correspondingly, the order of fields in a structured dtypes now matters when
computing dtype equality. For example, with the dtypes ::

x = dtype({'names': ['A', 'B'], 'formats': ['i4', 'f4'], 'offsets': [0, 4]})
y = dtype({'names': ['B', 'A'], 'formats': ['f4', 'i4'], 'offsets': [4, 0]})

the expression x == y will now return False, unlike before.
This makes dictionary based dtype specifications like
dtype({'a': ('i4', 0), 'b': ('f4', 4)}) dangerous in python < 3.6
since dict key order is not preserved in those versions.

Assignment from a structured array to a boolean array now raises a ValueError,
unlike in 1.13, where it always set the destination elements to True.

Assignment from structured array with more than one field to a non-structured
array now raises a ValueError. In 1.13 this copied just the first field of the
source to the destination.

Using field "titles" in multiple-field indexing is now disallowed, as is
repeating a field name in a multiple-field index.

The documentation for structured arrays in the user guide has been
significantly updated to reflect these changes.

Integer and Void scalars are now unaffected by np.set_string_function

Previously, unlike most other numpy scalars, the str and repr of
integer and void scalars could be controlled by np.set_string_function.
This is no longer possible.

0d array printing changed, style arg of array2string deprecated

Previously the str and repr of 0d arrays had idiosyncratic
implementations which returned str(a.item()) and 'array(' + repr(a.item()) + ')' respectively for 0d array a, unlike both numpy
scalars and higher dimension ndarrays.

Now, the str of a 0d array acts like a numpy scalar using str(a[()])
and the repr acts like higher dimension arrays using formatter(a[()]),
where formatter can be specified using np.set_printoptions. The
style argument of np.array2string is deprecated.

This new behavior is disabled in 1.13 legacy printing mode, see compatibility
notes above.

Seeding RandomState using an array requires a 1-d array

RandomState previously would accept empty arrays or arrays with 2 or more
dimensions, which resulted in either a failure to seed (empty arrays) or for
some of the passed values to be ignored when setting the seed.

MaskedArray objects show a more useful repr

The repr of a MaskedArray is now closer to the python code that would
produce it, with arrays now being shown with commas and dtypes. Like the other
formatting changes, this can be disabled with the 1.13 legacy printing mode in
order to help transition doctests.

The repr of np.polynomial classes is more explicit

It now shows the domain and window parameters as keyword arguments to make
them more clear::

>>> np.polynomial.Polynomial(range(4))
Polynomial([0.,  1.,  2.,  3.], domain=[-1,  1], window=[-1,  1])

Checksums

MD5

386ee4bc729dc436968792a3d1ead595  numpy-1.14.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
f34177798b3a4c4fc1f206a0406726ce  numpy-1.14.0rc1-cp27-cp27m-manylinux1_i686.whl
6fab1b73e429fa263fe95ddc659ffccd  numpy-1.14.0rc1-cp27-cp27m-manylinux1_x86_64.whl
b4c09c8193e2aaf210d52aa8e0756b77  numpy-1.14.0rc1-cp27-cp27mu-manylinux1_i686.whl
5c6c70f4ff653761787a06607c393c3e  numpy-1.14.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
a9c4e1bb9af79ab92b33554fcca3e946  numpy-1.14.0rc1-cp27-none-win32.whl
b088d7ba2a0b1bcf9fa5dfce016d7724  numpy-1.14.0rc1-cp27-none-win_amd64.whl
52d6e7dd15cdd6d7f67a432c30839382  numpy-1.14.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
4a083b1d8c327ac0258539ce002eaa50  numpy-1.14.0rc1-cp34-cp34m-manylinux1_i686.whl
5fc05e98d0c7a3285e7617777dc28ee4  numpy-1.14.0rc1-cp34-cp34m-manylinux1_x86_64.whl
926e999d5823d8ab38b36c680c8c2743  numpy-1.14.0rc1-cp34-none-win32.whl
653feb0279961bfcd66b8ef0f1c01d84  numpy-1.14.0rc1-cp34-none-win_amd64.whl
8f0ed0bcc95276261f66dcaeb72b8b75  numpy-1.14.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
73333bcd9f719d58002f78b5160118ea  numpy-1.14.0rc1-cp35-cp35m-manylinux1_i686.whl
7d38e62f4fbef2fc2dc2b6853c51070a  numpy-1.14.0rc1-cp35-cp35m-manylinux1_x86_64.whl
aa39db783e2107aab606f5664eaa9b93  numpy-1.14.0rc1-cp35-none-win32.whl
8d8bd1a3ff313bb915d67df055a48512  numpy-1.14.0rc1-cp35-none-win_amd64.whl
090acb877923354975502656070c8a5d  numpy-1.14.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
5560836ac5e2b6b703a0d8f85c35440c  numpy-1.14.0rc1-cp36-cp36m-manylinux1_i686.whl
28bc40ddf2698a935a4d4fb41a6ec554  numpy-1.14.0rc1-cp36-cp36m-manylinux1_x86_64.whl
3653b793c7b85c6070ad63b5b56905b2  numpy-1.14.0rc1-cp36-none-win32.whl
246ad4cfaa8abd1551b5c94eef7272f2  numpy-1.14.0rc1-cp36-none-win_amd64.whl
6a12f7bcc8030892668191ca0203701b  numpy-1.14.0rc1.tar.gz
2df98be4fa45e95fe5e97a984570f1cd  numpy-1.14.0rc1.zip

SHA256

bcdc3fb50f334863ed7494fcc34ba353463aaf0a10a8df7f987bb15d70fc5eac  numpy-1.14.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
16eada2481554bdd0ed64eb31cfc21eda0a0e5355a5d621e83c29060c75cf222  numpy-1.14.0rc1-cp27-cp27m-manylinux1_i686.whl
06193aafc49e43401af290793680a59b01a5366fc89e0f2c11e69f50a51f25b6  numpy-1.14.0rc1-cp27-cp27m-manylinux1_x86_64.whl
0209f9fb76b149993a5e6bae7a8f12e5fc27de13383d37fb1a26cd5e8d440cc9  numpy-1.14.0rc1-cp27-cp27mu-manylinux1_i686.whl
b72a6f0be39b86e8c5d59c9e76771cbfa402285aeca2c037941fdb2082a72311  numpy-1.14.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
9517cc030e381e64f1c9a3ac66906abb869cec9af0c1c5c06ab3036d8f8a82a1  numpy-1.14.0rc1-cp27-none-win32.whl
214f0a2eb538dcc50d3def9682d8be444ee98f116a42addc58a2cb1a863e0bdb  numpy-1.14.0rc1-cp27-none-win_amd64.whl
80f8150e9982e34f7283ed54cae5b4ac28ae2e818fc127c0f4ff6a071aea0e42  numpy-1.14.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
d09148f821408c1dc3f527a142f67446fb5fd5bc6151e61ce6ade8828c3f5ac3  numpy-1.14.0rc1-cp34-cp34m-manylinux1_i686.whl
24bee688bda518bc24799b49f9f6ea78531a615ed5d727b1959923af67aa8991  numpy-1.14.0rc1-cp34-cp34m-manylinux1_x86_64.whl
598b8bb17be6e70b5207193f55b4c6e86980be5b015159c92ab4bfdd4ec2c746  numpy-1.14.0rc1-cp34-none-win32.whl
49b03326a62cd24918582352720bea4ad950a7072b560143ea52aa59c2dad94d  numpy-1.14.0rc1-cp34-none-win_amd64.whl
4620b548da24679027d0ec37766fd6d4dfce789433e1732eec82f4fddf070bb9  numpy-1.14.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
fa93dcecec03ec2955bb56cd8f51574bdfedff2dd2ed1abddd632ab4760d75f0  numpy-1.14.0rc1-cp35-cp35m-manylinux1_i686.whl
8af71007406b54d3a0ac155efd13b9c3d32dd32387f3fe8e166bec74e5e67eb6  numpy-1.14.0rc1-cp35-cp35m-manylinux1_x86_64.whl
b98298d91d37cb2698671aedda441e53ba7d278dca217186a94638f7e12d5025  numpy-1.14.0rc1-cp35-none-win32.whl
d8c848ab6427fc28f2bc6325db00684a0f8594e0de553bf7d124bebfabf1dbb3  numpy-1.14.0rc1-cp35-none-win_amd64.whl
3fa04d4f9921c7ade238c2e1c7ca69369a1364e2b2951c856d81f761cadfdc89  numpy-1.14.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
bd77c7c95071e8ba8e5788b2c84429a28420ca35c4480cf439c1796a14361abb  numpy-1.14.0rc1-cp36-cp36m-manylinux1_i686.whl
c3029997437bcd48bbed43c9c6db9b191dd84d428b01afdf20c8b7f5c14aabff  numpy-1.14.0rc1-cp36-cp36m-manylinux1_x86_64.whl
6e5b728256c24a9072029edb2fb17047d8ef1a79bc1ab7688b98d204da0699e9  numpy-1.14.0rc1-cp36-none-win32.whl
c7423ed929639b5c76207b803508fdd388586ece32975418a03d05bf9ffe78a1  numpy-1.14.0rc1-cp36-none-win_amd64.whl
1c8bee7b0f2f056c92383e038a943cd24cbc7cac3ca5db70450dcfe2674ceb36  numpy-1.14.0rc1.tar.gz
011df832827befa97cbb8c5646a81f05a041f9a6ae66c8abaea5a04db1d002bd  numpy-1.14.0rc1.zip
numpy -

Published by charris about 7 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

==========================
NumPy 1.13.3 Release Notes

This is a bugfix release for some problems found since 1.13.1. The most
important fixes are for CVE-2017-12852 and temporary elision. Users of earlier
versions of 1.13 should upgrade.

The Python versions supported 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. It was cythonized with Cython 0.26.1,
which should be free of the bugs found in 0.27 while also being compatible with
Python 3.7-dev. The Windows wheels were built with OpenBlas instead ATLAS,
which should improve the performance of the linear algebra functions.

The NumPy 1.13.3 release is a re-release of 1.13.2, which suffered from a
bug in Cython 0.27.0.

Contributors

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

  • Allan Haldane
  • Brandon Carter
  • Charles Harris
  • Eric Wieser
  • Iryna Shcherbina +
  • James Bourbeau +
  • Jonathan Helmus
  • Julian Taylor
  • Matti Picus
  • Michael Lamparski +
  • Michael Seifert
  • Ralf Gommers

Pull requests merged

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

  • #9390 BUG: Return the poly1d coefficients array directly
  • #9555 BUG: Fix regression in 1.13.x in distutils.mingw32ccompiler.
  • #9556 BUG: Fix true_divide when dtype=np.float64 specified.
  • #9557 DOC: Fix some rst markup in numpy/doc/basics.py.
  • #9558 BLD: Remove -xhost flag from IntelFCompiler.
  • #9559 DOC: Removes broken docstring example (source code, png, pdf)...
  • #9580 BUG: Add hypot and cabs functions to WIN32 blacklist.
  • #9732 BUG: Make scalar function elision check if temp is writeable.
  • #9736 BUG: Various fixes to np.gradient
  • #9742 BUG: Fix np.pad for CVE-2017-12852
  • #9744 BUG: Check for exception in sort functions, add tests
  • #9745 DOC: Add whitespace after "versionadded::" directive so it actually...
  • #9746 BUG: Memory leak in np.dot of size 0
  • #9747 BUG: Adjust gfortran version search regex
  • #9757 BUG: Cython 0.27 breaks NumPy on Python 3.
  • #9764 BUG: Ensure _npy_scaled_cexp{,f,l} is defined when needed.
  • #9765 BUG: PyArray_CountNonzero does not check for exceptions
  • #9766 BUG: Fixes histogram monotonicity check for unsigned bin values
  • #9767 BUG: Ensure consistent result dtype of count_nonzero
  • #9771 BUG: MAINT: Fix mtrand for Cython 0.27.
  • #9772 DOC: Create the 1.13.2 release notes.
  • #9794 DOC: Create 1.13.3 release notes.

Checksums

MD5


53600ccf171825920dddf0e9a1d9e0c8  numpy-1.13.3-2-cp27-none-win32.whl
13cd744cbb51b90ea446c01241ca2cde  numpy-1.13.3-2-cp34-none-win32.whl
3fd27b05b46c473a584505ff6a50a5fa  numpy-1.13.3-2-cp35-none-win32.whl
5add1046e7c1b33b865edafd1a6a7577  numpy-1.13.3-2-cp36-none-win32.whl
b660f17365f0dfc5e5904c21f15ac46e  numpy-1.13.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
408f1f0070dfbc0569b440083febeb82  numpy-1.13.3-cp27-cp27m-manylinux1_i686.whl
64bc7dc4a503398e0b4cc48778136374  numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl
95e59446abb9152ed6af36b655e35dfe  numpy-1.13.3-cp27-cp27mu-manylinux1_i686.whl
f6d06d326e873d626576bd705e4f29a2  numpy-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl
1ec7662240b1dd91fb801061409ab3e3  numpy-1.13.3-cp27-none-win_amd64.whl
819c122467a1053d4802fd7ce984a30a  numpy-1.13.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
2992819fbaa8acd34529479592b3d376  numpy-1.13.3-cp34-cp34m-manylinux1_i686.whl
264590d2df37212e97a91c0e5828a452  numpy-1.13.3-cp34-cp34m-manylinux1_x86_64.whl
cf208337059f8a48235a7741f04c9e49  numpy-1.13.3-cp34-none-win_amd64.whl
d2f98af88264169f5cef760d95cef0f0  numpy-1.13.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
6ac434243bc3ed40e9854b319f76b1b5  numpy-1.13.3-cp35-cp35m-manylinux1_i686.whl
94c0a5c9aa6fd35862cbe7862fd68f36  numpy-1.13.3-cp35-cp35m-manylinux1_x86_64.whl
5b5ad3cdc43c950b8a26ab1bf3413e46  numpy-1.13.3-cp35-none-win_amd64.whl
dd2f6c5e72526d45fdd09c22b85e4bb8  numpy-1.13.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
ad1b9be95891adc1f7f7e9a23c1fe92d  numpy-1.13.3-cp36-cp36m-manylinux1_i686.whl
bcbfbd9d0dbe026fd59a7756e190cdfa  numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl
8748204cc74d46f617c316507360ccb3  numpy-1.13.3-cp36-none-win_amd64.whl
c1d433e5973e548809e80c9118474b73  numpy-1.13.3.tar.gz
300a6f0528122128ac07c6deb5c95917  numpy-1.13.3.zip

SHA256


910e7ae5eeee8d322775187692c5c66719cd58d230fbfd57245ea3cf75716910  numpy-1.13.3-2-cp27-none-win32.whl
f5c9ca457057cd5e12ddab36cded8b1f38bf1f45bf550d4ca2839b11ec57f597  numpy-1.13.3-2-cp34-none-win32.whl
d29e72413b66df23c75b9b469253c823698ea2e00f58e9e0df64b7a50696e8ac  numpy-1.13.3-2-cp35-none-win32.whl
539345898a4ae17421c159ae2a350901a5e6ce3da8f24168c6c67b3536e13de8  numpy-1.13.3-2-cp36-none-win32.whl
929928932f91082a168e36984179deddd58f8e98822ad2f33a2955d7c4eec596  numpy-1.13.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
62b09f3d1ea01d79c16a6642cb21599f53b9338c59971b2418a573155d2202ec  numpy-1.13.3-cp27-cp27m-manylinux1_i686.whl
c4b1914d86c43399438518a2ac8bcba2fb64dd5a18efddded3783b9daae70933  numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl
6c6feb0647380db6e1d5d49ef9fb59c42240f25fb8df8b6e82ecb436c7e0621a  numpy-1.13.3-cp27-cp27mu-manylinux1_i686.whl
da2f47e46d7a93b73891d1981378717dc73c6ad5cc4fd23c934bfea7847fa958  numpy-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl
4c767b6d9c9a071bb36ea34eb240ee5192fe0bc4c13be5e6c51e0350a30f7ac0  numpy-1.13.3-cp27-none-win_amd64.whl
b2f98838f4bbc3bf23af7e97ffcad18a2dc6bbb0726796781e02b9347af6685f  numpy-1.13.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
11fcbed36c101a3b9c4636e791efccba82409ebbedaba938c97be8bdddd029cc  numpy-1.13.3-cp34-cp34m-manylinux1_i686.whl
8969c8f987f8bcc3e30c014532cfc20e4a8f86a50c361596e086310853adacb7  numpy-1.13.3-cp34-cp34m-manylinux1_x86_64.whl
2875e8055a1ea8d933b1c9d0f8714c0aa11c097bfadfcb8564c4d868fbf09a41  numpy-1.13.3-cp34-none-win_amd64.whl
09b87d652c03508447d0f618e1d3ae57595acd3e0f0c11ac91bf68ed7bdb3a28  numpy-1.13.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
9cad35b911e150f00bb8080950c7e9f172714bbd0234f5ab74b4e3e2d9288b37  numpy-1.13.3-cp35-cp35m-manylinux1_i686.whl
479863de17f66810db00bccf35289555365da45d3b053ccf539b95ab3b9c24f6  numpy-1.13.3-cp35-cp35m-manylinux1_x86_64.whl
b162c6b044960b4ea0f42be049ce2af1d18c60f82748f0a27bd5ad182a731bf3  numpy-1.13.3-cp35-none-win_amd64.whl
fa656dccfa9141774440575a6e7875d08b93f4a332eb5ae40877b26bed291c01  numpy-1.13.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
7dfa5b49fb2a080bd0d39bfbcff1177bacb14fcb28c857fd65fd0c18938935de  numpy-1.13.3-cp36-cp36m-manylinux1_i686.whl
e8e0e75db757e41463888939d26c8058b4ecd25e563c597e9119f512dc0ee1da  numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl
c8dc6aa96882df6323bf9545934e37c6e05959bd789ae4b14d50509b093907aa  numpy-1.13.3-cp36-none-win_amd64.whl
4c6b4eef790528bebb7ec9590d74cc193868940fe68e4109a91c196df72d8094  numpy-1.13.3.tar.gz
36ee86d5adbabc4fa2643a073f93d5504bdfed37a149a3a49f4dde259f35a750  numpy-1.13.3.zip

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJZz/tOAAoJEGefIoN3xSR7b7cIALNvpkl8yHIxBaA89vSFVkhK
XRPrYgmk7kc5Kr4IImNcj1ijvrG/GSeB1QHZq1ndBkC5mKNRt4ZrfGjxpbj13OQx
UQ3QjjEJOS3nRB4ILBjvioUKjV4OThscOZqzwEeek3zXd2RgqSXuEEUJg3F1jtGR
bgBt6+FiU1DdCWR2jg1FtnFoVetpY2/9dKMmdEsGZF5QePT5U6sPFw7ySZDOWUNA
PdHmgVhJZGLQ9llr+TnjeV5kpSiPyT33sCUbp9eoP0TXV2jnF24/q5lkxe1RLGo/
Bh/zdgopjfdW605gKD2xkri00r+1yYywzypXt0o7HsKNS7V9hUM/b0mIxbEPJ7I=
=k4c2
-----END PGP SIGNATURE-----

numpy - NumPy 1.13.2

Published by charris about 7 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

==========================
NumPy 1.13.2 Release Notes

This is a bugfix release for some problems found since 1.13.1. The most
important fixes are for CVE-2017-12852 and temporary elision. Users of earlier
versions of 1.13 should upgrade.

The Python versions supported 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 Windows wheels are now built
with OpenBlas instead ATLAS, which should improve the performance of the linear
algebra functions.

Contributors

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

  • Allan Haldane
  • Brandon Carter
  • Charles Harris
  • Eric Wieser
  • Iryna Shcherbina +
  • James Bourbeau +
  • Jonathan Helmus
  • Julian Taylor
  • Matti Picus
  • Michael Lamparski +
  • Michael Seifert
  • Ralf Gommers

Pull requests merged

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

  • #9390 BUG: Return the poly1d coefficients array directly
  • #9555 BUG: Fix regression in 1.13.x in distutils.mingw32ccompiler.
  • #9556 BUG: Fix true_divide when dtype=np.float64 specified.
  • #9557 DOC: Fix some rst markup in numpy/doc/basics.py.
  • #9558 BLD: Remove -xhost flag from IntelFCompiler.
  • #9559 DOC: Removes broken docstring example (source code, png, pdf)...
  • #9580 BUG: Add hypot and cabs functions to WIN32 blacklist.
  • #9732 BUG: Make scalar function elision check if temp is writeable.
  • #9736 BUG: Various fixes to np.gradient
  • #9742 BUG: Fix np.pad for CVE-2017-12852
  • #9744 BUG: Check for exception in sort functions, add tests
  • #9745 DOC: Add whitespace after "versionadded::" directive so it actually...
  • #9746 BUG: Memory leak in np.dot of size 0
  • #9747 BUG: Adjust gfortran version search regex
  • #9757 BUG: Cython 0.27 breaks NumPy on Python 3.
  • #9764 BUG: Ensure _npy_scaled_cexp{,f,l} is defined when needed.
  • #9765 BUG: PyArray_CountNonzero does not check for exceptions
  • #9766 BUG: Fixes histogram monotonicity check for unsigned bin values
  • #9767 BUG: Ensure consistent result dtype of count_nonzero
  • #9771 BUG, MAINT: Fix mtrand for Cython 0.27.

Checksums

MD5


d3ac88f752fc713ca353d6623cdff1d2  numpy-1.13.2-1.tar.gz
94c48ee8dc28793032a591c096130b84  numpy-1.13.2-1.zip
774a0d6341be6b09060efdb0040f23b3  numpy-1.13.2-1.zip.asc
dee547a38bd0ca89a7453ceecf3021ce  numpy-1.13.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
9d1249456f45be2edde0fa44757b5838  numpy-1.13.2-cp27-cp27m-manylinux1_i686.whl
81898f48b56e55f4044b7b6e6078af8f  numpy-1.13.2-cp27-cp27m-manylinux1_x86_64.whl
ae1699f501592cc53d0807a1aa2eb457  numpy-1.13.2-cp27-cp27mu-manylinux1_i686.whl
5d4ebc829dfd04dadc0e280b47992ed7  numpy-1.13.2-cp27-cp27mu-manylinux1_x86_64.whl
567df692734c11c3f340d9108b2d41ea  numpy-1.13.2-cp27-none-win32.whl
022016ffb96ffc1584cebfc085b80e1d  numpy-1.13.2-cp27-none-win_amd64.whl
521884f3ff3debb8e49e6d905b4c8248  numpy-1.13.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
32630160e7b2c6b159f1816d0f6c2719  numpy-1.13.2-cp34-cp34m-manylinux1_i686.whl
02908f86c6e6f4b5b59d139a67e63388  numpy-1.13.2-cp34-cp34m-manylinux1_x86_64.whl
7d5efcd69f664484057ed8541740bcd1  numpy-1.13.2-cp34-none-win32.whl
37c410d7e4526b4d221da08fcbf1641f  numpy-1.13.2-cp34-none-win_amd64.whl
68ae514b92be35e6c0ec37946e49bc62  numpy-1.13.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
468fbb60b613f5c506022822e5ecd31a  numpy-1.13.2-cp35-cp35m-manylinux1_i686.whl
8fee946c44aeb516048e1451805be50e  numpy-1.13.2-cp35-cp35m-manylinux1_x86_64.whl
6386a7650bb29ad0fe7212ed86f9bda7  numpy-1.13.2-cp35-none-win32.whl
4972770e7b310f32421837f3106ad069  numpy-1.13.2-cp35-none-win_amd64.whl
cffc35cdbea63e4f99c3cf8ded5bdb76  numpy-1.13.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
227d77b146aa7536d4481641b559d728  numpy-1.13.2-cp36-cp36m-manylinux1_i686.whl
f3f057a84f8bb939612163582dc02618  numpy-1.13.2-cp36-cp36m-manylinux1_x86_64.whl
0123a37adf70070aba648e60b16977a7  numpy-1.13.2-cp36-none-win32.whl
9160e9c633bac901caf90d249aa1a745  numpy-1.13.2-cp36-none-win_amd64.whl

SHA256


f976eb3de5ae3a7f17a402380a49f0582e3f2aafcf9d0a99e969b99e32018e29  numpy-1.13.2-1.tar.gz
0a1c96a3698455f06ce21b8eb3f4a00b9b165f6e082be3a22af80f0d8eedf9b8  numpy-1.13.2-1.zip
d79d07ea093fc07a991c23fdd05bce3f400c4c11e0f9f10cde2e1f1af0358266  numpy-1.13.2-1.zip.asc
a51b0788f098b76b5750d0b2352709fbe3fb4736ed93ab60028513ea2bf10259  numpy-1.13.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
077dfc6c05fec867a9caaffbce22b0581894f885931111b0749eb95e3ad390be  numpy-1.13.2-cp27-cp27m-manylinux1_i686.whl
cf7a17d41027551bcb198e2de061ebbe1fee1affc332b4d3add650bc21794ec2  numpy-1.13.2-cp27-cp27m-manylinux1_x86_64.whl
6eeb63d026ba8e0bf177b50819a8a9a5a808ea82d3477001eb35a9ca3e4c698c  numpy-1.13.2-cp27-cp27mu-manylinux1_i686.whl
4f9dd034b88604d0f67454e879a1d07d54794650fea51186b5199bb780530a07  numpy-1.13.2-cp27-cp27mu-manylinux1_x86_64.whl
1b21a68ed1aa9e0d9eb4b72729f7e6bf6ad7a48d902a7ae2b7252926ed4616fd  numpy-1.13.2-cp27-none-win32.whl
e9a2ebff47bf737e0e04e2c7545e843aab637716ab1b732e1ac0a8e1956444a9  numpy-1.13.2-cp27-none-win_amd64.whl
90eed22ffb0001e8330737b3323bd712eee7af898e726a0e8cb4c4d435f72d00  numpy-1.13.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
9f3b213396ad52beba7b70b1bd9cbab11bd422ba756935aff9858af26ba98d35  numpy-1.13.2-cp34-cp34m-manylinux1_i686.whl
4bdce25f2aa0cc0f83c599cf2a57dc6c44d1e71264879da6ca411fafa4a6380e  numpy-1.13.2-cp34-cp34m-manylinux1_x86_64.whl
d01d6c03422d5a6663aba0022a552fb77c2e503f19a79ca4418d7da6a6165fee  numpy-1.13.2-cp34-none-win32.whl
46f4da749206ca75def0eae3ce4d0985d9555c57e5121257eec56e3c351cd3c2  numpy-1.13.2-cp34-none-win_amd64.whl
8a8e5a848e362a864d40a0b99fcc4eccfc6618cd5f8c3587d74bc8c9796ee015  numpy-1.13.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
6fc660f6713250307f340b3dae1811ff08a55697e4ee8393ede52f757d39c3e1  numpy-1.13.2-cp35-cp35m-manylinux1_i686.whl
5c159ac450569594c1f10c118e221c234a481f9fcfa157a736c80f52c6e698ec  numpy-1.13.2-cp35-cp35m-manylinux1_x86_64.whl
6930af9a8252454dc6ce037845c7d6c007671f6a156e64b1d8ff973ff42569a0  numpy-1.13.2-cp35-none-win32.whl
2f10c7042587044e9791df60c3733d9b03b4a5d5f5bf3793c9c30ac7c376cfce  numpy-1.13.2-cp35-none-win_amd64.whl
2e80e8904636ce1f01d59c019f128161ae472171710b5541f6a535b3ab7f11e4  numpy-1.13.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
1847a3dd54240b523b383e95635c5305b785c3fe932a2b6ac0a379c5788f1401  numpy-1.13.2-cp36-cp36m-manylinux1_i686.whl
9725d3cb40dccee76df0ce7816c8d80464b2ebf3d1c68a0620c9633d1b7ffc10  numpy-1.13.2-cp36-cp36m-manylinux1_x86_64.whl
da025523172dc61dab586d31e326bc3517004dfeb8e0337d2b556d76bb5217df  numpy-1.13.2-cp36-none-win32.whl
4cecc6c842762154649fd1c976d40b5903c75076924464b46645af101019e1ad  numpy-1.13.2-cp36-none-win_amd64.whl

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJZzQThAAoJEGefIoN3xSR7rX8H/3f6D0kNlOyn3YJ9eDCHwOBO
WJxJ7suMfNKgoZa6NUdNkGXA+WkhjGzROIaftF69CnPa3thzGTZguRJDHOscUEi7
YHpdqnzSP9nuDFkfbUQC1t7M6XPR7NrGd/u46fkhEeUBrR7OyBYwTTbCJc97Zwjn
9OXHAJ3vVnUFOzcYnYMue/OLHpAGYjx9y3WlM4A37aKyL6Gf3ugRGUTfOOmzrAAb
Vgqgkmt01nGCHiVGyI/exCkHsoNoUJV9abLygzwRkHirSOhL8DhSv/aULya4ZwSX
AZzdA8jHVXOxymkKPz+zQJ7EKs/Dg8kuVneqv/IisnDwJy/1xCR6kxha09ZewWQ=
=qR0v
-----END PGP SIGNATURE-----

numpy -

Published by charris over 7 years ago

==========================
NumPy 1.13.1 Release Notes

This is a bugfix release for problems found in 1.13.0. The major changes are
fixes for the new memory overlap detection and temporary elision as well as
reversion of the removal of the boolean binary - operator. Users of 1.13.0
should upgrade.

Thr Python versions supported are 2.7 and 3.4 - 3.6. Note that the Python 3.6
wheels available from PIP are built against 3.6.1, hence will not work when
used with 3.6.0 due to Python bug 29943_. NumPy 1.13.2 will be released shortly
after Python 3.6.2 is out to fix that problem. If you are using 3.6.0 the
workaround is to upgrade to 3.6.1 or use an earlier Python version.

.. _#29943: https://bugs.python.org/issue29943

Pull requests merged

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

  • #9240 DOC: BLD: fix lots of Sphinx warnings/errors.
  • #9255 Revert "DEP: Raise TypeError for subtract(bool_, bool_)."
  • #9261 BUG: don't elide into readonly and updateifcopy temporaries for...
  • #9262 BUG: fix missing keyword rename for common block in numpy.f2py
  • #9263 BUG: handle resize of 0d array
  • #9267 DOC: update f2py front page and some doc build metadata.
  • #9299 BUG: Fix Intel compilation on Unix.
  • #9317 BUG: fix wrong ndim used in empty where check
  • #9319 BUG: Make extensions compilable with MinGW on Py2.7
  • #9339 BUG: Prevent crash if ufunc doc string is null
  • #9340 BUG: umath: un-break ufunc where= when no out= is given
  • #9371 DOC: Add isnat/positive ufunc to documentation
  • #9372 BUG: Fix error in fromstring function from numpy.core.records...
  • #9373 BUG: ')' is printed at the end pointer of the buffer in numpy.f2py.
  • #9374 DOC: Create NumPy 1.13.1 release notes.
  • #9376 BUG: Prevent hang traversing ufunc userloop linked list
  • #9377 DOC: Use x1 and x2 in the heaviside docstring.
  • #9378 DOC: Add $PARAMS to the isnat docstring
  • #9379 DOC: Update the 1.13.1 release notes

Contributors

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

  • Andras Deak +
  • Bob Eldering +
  • Charles Harris
  • Daniel Hrisca +
  • Eric Wieser
  • Joshua Leahy +
  • Julian Taylor
  • Michael Seifert
  • Pauli Virtanen
  • Ralf Gommers
  • Roland Kaufmann
  • Warren Weckesser

Checksums

MD5

010a6325ec8e7df2f305e716c871880a  numpy-1.13.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
7774a1a5f93b45bfa7045b98eb102cca  numpy-1.13.1-cp27-cp27m-manylinux1_i686.whl
7906018278f3471a9a166a3975523ddd  numpy-1.13.1-cp27-cp27m-manylinux1_x86_64.whl
7ecd9304c319fc6b9ea481d6bf2e5051  numpy-1.13.1-cp27-cp27mu-manylinux1_i686.whl
de272621d41b7856e1580307be9d1fba  numpy-1.13.1-cp27-cp27mu-manylinux1_x86_64.whl
21c4dc286991347f506c0e27475f9058  numpy-1.13.1-cp27-none-win32.whl
245e3ebe32cf60d9d16e7267aa4292fc  numpy-1.13.1-cp27-none-win_amd64.whl
3eee3605dd61f02583264eb5697d8207  numpy-1.13.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
4a9f08ad5f3073ecaeea939158eaf955  numpy-1.13.1-cp34-cp34m-manylinux1_i686.whl
c51520d0d3836c91cba18d1fa8cf299c  numpy-1.13.1-cp34-cp34m-manylinux1_x86_64.whl
b1f13004ee992203d8c15940d60d0e7c  numpy-1.13.1-cp34-none-win32.whl
062bf4ed9e0fd5af995a17360e7bdec9  numpy-1.13.1-cp34-none-win_amd64.whl
b14a4749abbab74c21ef0743f7426245  numpy-1.13.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
a5b6bffc5a0e4950748ab0969457a728  numpy-1.13.1-cp35-cp35m-manylinux1_i686.whl
4558a2357849d9ef7b80260a76b7c990  numpy-1.13.1-cp35-cp35m-manylinux1_x86_64.whl
dd062ef029279bd795653a768d50180d  numpy-1.13.1-cp35-none-win32.whl
4df5bb3eb4787ff9850c1a5694922ab4  numpy-1.13.1-cp35-none-win_amd64.whl
449926c081bd27655d8bf76e03c5c75c  numpy-1.13.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
6ab8632d38c0313d9e063841a7e43edf  numpy-1.13.1-cp36-cp36m-manylinux1_i686.whl
a3664260fc73c6c2645a00b22109a2b8  numpy-1.13.1-cp36-cp36m-manylinux1_x86_64.whl
0a5d74ebce74e2a557d7bc0183398ac1  numpy-1.13.1-cp36-none-win32.whl
ab789d91bc6e423084df7fc73e667270  numpy-1.13.1-cp36-none-win_amd64.whl
6d459e4a24f5035f720dda3c57716a92  numpy-1.13.1.tar.gz
2c3c0f4edf720c3a7b525dacc825b9ae  numpy-1.13.1.zip

SHA256

91a4f5c6594a61b57b0ab6031a084fa3686b1e847cc2215983e444583594b529  numpy-1.13.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
ab6abc2083013dd86a8fcba2ba16bab00690cb81db62588781d656572809c9a9  numpy-1.13.1-cp27-cp27m-manylinux1_i686.whl
02e6279d95081086469e6ed83c708c4c48ed03a28ab87c71bea28af3b95fa56d  numpy-1.13.1-cp27-cp27m-manylinux1_x86_64.whl
05a7a81397e1391ae34cc0d14764a31ab6f73dbd0abe0952b3550d3ad4df265d  numpy-1.13.1-cp27-cp27mu-manylinux1_i686.whl
73fd54d9787f4f8747f823a7e2d0693da94c66b670ccf436e4bb488bbcd5ce8c  numpy-1.13.1-cp27-cp27mu-manylinux1_x86_64.whl
4b7da62ba159bfc5fee6f54709b0708686ee15081f16dc5f81cda7f1e0e77941  numpy-1.13.1-cp27-none-win32.whl
1980c4bc1eb495624c8414f3763da83b91d37c3c69772ab6912e9a857a143cdb  numpy-1.13.1-cp27-none-win_amd64.whl
436d47018c3cd2b9723ed3cd4ed4698ea7641449c71096781478ef6a20ae3bd0  numpy-1.13.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
43722270fbfb07d91558985a3da37aa92a2d4e2d271182526959a5773f9fb12a  numpy-1.13.1-cp34-cp34m-manylinux1_i686.whl
838e48df3703c8747f355cd6386e0680b906a2f7b2bbd304e8a2d531692484ce  numpy-1.13.1-cp34-cp34m-manylinux1_x86_64.whl
1400ec59c7f6c4f9390cc3bc5e56a6cbae2c30b39024eef317a0b52fe9c174c6  numpy-1.13.1-cp34-none-win32.whl
ed6a909a78e29a4056e30f918a26b231e33edc77bd785bbceb461877baf9feb5  numpy-1.13.1-cp34-none-win_amd64.whl
c1833829526ce8f5177a3e07554b6c98c194072f66f018839ecd1ef2d15e6c4a  numpy-1.13.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
a09a4707066fe9431c6b79a1be922bc126f4bc50502ae7e9f67d40917d0cc6d4  numpy-1.13.1-cp35-cp35m-manylinux1_i686.whl
9a8515002f143a5934f25ad2aacdfd1fcf57a7f5da6142c439eb8787ef65e8a6  numpy-1.13.1-cp35-cp35m-manylinux1_x86_64.whl
b49caeb170e54cc59863017a199667a51526bd906bcd5ee340fcf0e01bd7fa94  numpy-1.13.1-cp35-none-win32.whl
405c3dbb6a57415ec8576ff1c0248f332ac1c3be2e5eea04d498dad8431bf57b  numpy-1.13.1-cp35-none-win_amd64.whl
42b3cf886701bb16f3bdf2ae6c39af67b464cdd67d5fc86619ef2a876a23de27  numpy-1.13.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
94cb6ef9ffd15d7d904d0825ada642a51dc8890cdc06f1e4fb8e46cff79fe2ef  numpy-1.13.1-cp36-cp36m-manylinux1_i686.whl
d910a24f536f926bd56fb30d6f17ae8b89a1406e105087a49e014e000b00e8db  numpy-1.13.1-cp36-cp36m-manylinux1_x86_64.whl
b064211a4d86fc8009ef90c66d1443ba4a0c56d481659e085a190299569955e3  numpy-1.13.1-cp36-none-win32.whl
f4b4b2da8c1b4f7c212742d2be03aa9277d46fd7b309025d930ad554e5739932  numpy-1.13.1-cp36-none-win_amd64.whl
de020ec06f1e9ce1115a50161a38bf8d4c2525379900f9cb478cc613a1e7cd93  numpy-1.13.1.tar.gz
c9b0283776085cb2804efff73e9955ca279ba4edafd58d3ead70b61d209c4fbb  numpy-1.13.1.zip
numpy -

Published by charris over 7 years ago

==========================
NumPy 1.13.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

  • Operations like a + b + c will reuse temporaries on some platforms,
    resulting in less memory use and faster execution.
  • Inplace operations check if inputs overlap outputs and create temporaries
    to avoid problems.
  • New __array_ufunc__ attribute provides improved ability for classes to
    override default ufunc behavior.
  • New np.block function for creating blocked arrays.

New functions

  • New np.positive ufunc.
  • New np.divmod ufunc provides more efficient divmod.
  • New np.isnat ufunc tests for NaT special values.
  • New np.heaviside ufunc computes the Heaviside function.
  • New np.isin function, improves on in1d.
  • New np.block function for creating blocked arrays.
  • New PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API.

See below for details.

Deprecations

  • Calling np.fix, np.isposinf, and np.isneginf with f(x, y=out)
    is deprecated - the argument should be passed as f(x, out=out), which
    matches other ufunc-like interfaces.
  • Use of the C-API NPY_CHAR type number deprecated since version 1.7 will
    now raise deprecation warnings at runtime. Extensions built with older f2py
    versions need to be recompiled to remove the warning.
  • np.ma.argsort, np.ma.minimum.reduce, and np.ma.maximum.reduce
    should be called with an explicit axis argument when applied to arrays with
    more than 2 dimensions, as the default value of this argument (None) is
    inconsistent with the rest of numpy (-1, 0, and 0, respectively).
  • np.ma.MaskedArray.mini is deprecated, as it almost duplicates the
    functionality of np.MaskedArray.min. Exactly equivalent behaviour
    can be obtained with np.ma.minimum.reduce.
  • The single-argument form of np.ma.minimum and np.ma.maximum is
    deprecated. np.maximum. np.ma.minimum(x) should now be spelt
    np.ma.minimum.reduce(x), which is consistent with how this would be done
    with np.minimum.
  • Calling ndarray.conjugate on non-numeric dtypes is deprecated (it
    should match the behavior of np.conjugate, which throws an error).
  • Calling expand_dims when the axis keyword does not satisfy
    -a.ndim - 1 <= axis <= a.ndim, where a is the array being reshaped,
    is deprecated.

Future Changes

  • Assignment between structured arrays with different field names will change
    in NumPy 1.14. Previously, fields in the dst would be set to the value of the
    identically-named field in the src. In numpy 1.14 fields will instead be
    assigned 'by position': The n-th field of the dst will be set to the n-th
    field of the src array. Note that the FutureWarning raised in NumPy 1.12
    incorrectly reported this change as scheduled for NumPy 1.13 rather than
    NumPy 1.14.

Build System Changes

  • numpy.distutils now automatically determines C-file dependencies with
    GCC compatible compilers.

Compatibility notes

Error type changes

  • numpy.hstack() now throws ValueError instead of IndexError when
    input is empty.
  • Functions taking an axis argument, when that argument is out of range, now
    throw np.AxisError instead of a mixture of IndexError and
    ValueError. For backwards compatibility, AxisError subclasses both of
    these.

Tuple object dtypes

Support has been removed for certain obscure dtypes that were unintentionally
allowed, of the form (old_dtype, new_dtype), where either of the dtypes
is or contains the object dtype. As an exception, dtypes of the form
(object, [('name', object)]) are still supported due to evidence of
existing use.

DeprecationWarning to error

See Changes section for more detail.

  • partition, TypeError when non-integer partition index is used.
  • NpyIter_AdvancedNew, ValueError when oa_ndim == 0 and op_axes is NULL
  • negative(bool_), TypeError when negative applied to booleans.
  • subtract(bool_, bool_), TypeError when subtracting boolean from boolean.
  • np.equal, np.not_equal, object identity doesn't override failed comparison.
  • np.equal, np.not_equal, object identity doesn't override non-boolean comparison.
  • Deprecated boolean indexing behavior dropped. See Changes below for details.
  • Deprecated np.alterdot() and np.restoredot() removed.

FutureWarning to changed behavior

See Changes section for more detail.

  • numpy.average preserves subclasses
  • array == None and array != None do element-wise comparison.
  • np.equal, np.not_equal, object identity doesn't override comparison result.

dtypes are now always true

Previously bool(dtype) would fall back to the default python
implementation, which checked if len(dtype) > 0. Since dtype objects
implement __len__ as the number of record fields, bool of scalar dtypes
would evaluate to False, which was unintuitive. Now bool(dtype) == True
for all dtypes.

__getslice__ and __setslice__ are no longer needed in ndarray subclasses

When subclassing np.ndarray in Python 2.7, it is no longer necessary to
implement __*slice__ on the derived class, as __*item__ will intercept
these calls correctly.

Any code that did implement these will work exactly as before. Code that
invokesndarray.__getslice__ (e.g. through super(...).__getslice__) will
now issue a DeprecationWarning - .__getitem__(slice(start, end)) should be
used instead.

Indexing MaskedArrays/Constants with ... (ellipsis) now returns MaskedArray

This behavior mirrors that of np.ndarray, and accounts for nested arrays in
MaskedArrays of object dtype, and ellipsis combined with other forms of
indexing.

C API changes

GUfuncs on empty arrays and NpyIter axis removal

It is now allowed to remove a zero-sized axis from NpyIter. Which may mean
that code removing axes from NpyIter has to add an additional check when
accessing the removed dimensions later on.

The largest followup change is that gufuncs are now allowed to have zero-sized
inner dimensions. This means that a gufunc now has to anticipate an empty inner
dimension, while this was never possible and an error raised instead.

For most gufuncs no change should be necessary. However, it is now possible
for gufuncs with a signature such as (..., N, M) -> (..., M) to return
a valid result if N=0 without further wrapping code.

PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API

Similar to PyArray_MapIterArray but with an additional copy_if_overlap
argument. If copy_if_overlap != 0, checks if input has memory overlap with
any of the other arrays and make copies as appropriate to avoid problems if the
input is modified during the iteration. See the documentation for more complete
documentation.

New Features

__array_ufunc__ added

This is the renamed and redesigned __numpy_ufunc__. Any class, ndarray
subclass or not, can define this method or set it to None in order to
override the behavior of NumPy's ufuncs. This works quite similarly to Python's
__mul__ and other binary operation routines. See the documentation for a
more detailed description of the implementation and behavior of this new
option. The API is provisional, we do not yet guarantee backward compatibility
as modifications may be made pending feedback. See the NEP_ and
documentation_ for more details.

.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/ufunc-overrides.rst
.. _documentation: https://github.com/charris/numpy/blob/master/doc/source/reference/arrays.classes.rst

New positive ufunc

This ufunc corresponds to unary +, but unlike + on an ndarray it will raise
an error if array values do not support numeric operations.

New divmod ufunc

This ufunc corresponds to the Python builtin divmod, and is used to implement
divmod when called on numpy arrays. np.divmod(x, y) calculates a result
equivalent to (np.floor_divide(x, y), np.remainder(x, y)) but is
approximately twice as fast as calling the functions separately.

np.isnat ufunc tests for NaT special datetime and timedelta values

The new ufunc np.isnat finds the positions of special NaT values
within datetime and timedelta arrays. This is analogous to np.isnan.

np.heaviside ufunc computes the Heaviside function

The new function np.heaviside(x, h0) (a ufunc) computes the Heaviside
function:
.. code::
{ 0 if x < 0,
heaviside(x, h0) = { h0 if x == 0,
{ 1 if x > 0.

np.block function for creating blocked arrays

Add a new block function to the current stacking functions vstack,
hstack, and stack. This allows concatenation across multiple axes
simultaneously, with a similar syntax to array creation, but where elements
can themselves be arrays. For instance::

>>> A = np.eye(2) * 2
>>> B = np.eye(3) * 3
>>> np.block([
...     [A,               np.zeros((2, 3))],
...     [np.ones((3, 2)), B               ]
... ])
array([[ 2.,  0.,  0.,  0.,  0.],
       [ 0.,  2.,  0.,  0.,  0.],
       [ 1.,  1.,  3.,  0.,  0.],
       [ 1.,  1.,  0.,  3.,  0.],
       [ 1.,  1.,  0.,  0.,  3.]])

While primarily useful for block matrices, this works for arbitrary dimensions
of arrays.

It is similar to Matlab's square bracket notation for creating block matrices.

isin function, improving on in1d

The new function isin tests whether each element of an N-dimensonal
array is present anywhere within a second array. It is an enhancement
of in1d that preserves the shape of the first array.

Temporary elision

On platforms providing the backtrace function NumPy will try to avoid
creating temporaries in expression involving basic numeric types.
For example d = a + b + c is transformed to d = a + b; d += c which can
improve performance for large arrays as less memory bandwidth is required to
perform the operation.

axes argument for unique

In an N-dimensional array, the user can now choose the axis along which to look
for duplicate N-1-dimensional elements using numpy.unique. The original
behaviour is recovered if axis=None (default).

np.gradient now supports unevenly spaced data

Users can now specify a not-constant spacing for data.
In particular np.gradient can now take:

  1. A single scalar to specify a sample distance for all dimensions.
  2. N scalars to specify a constant sample distance for each dimension.
    i.e. dx, dy, dz, ...
  3. N arrays to specify the coordinates of the values along each dimension of F.
    The length of the array must match the size of the corresponding dimension
  4. Any combination of N scalars/arrays with the meaning of 2. and 3.

This means that, e.g., it is now possible to do the following::

>>> f = np.array([[1, 2, 6], [3, 4, 5]], dtype=np.float)
>>> dx = 2.
>>> y = [1., 1.5, 3.5]
>>> np.gradient(f, dx, y)
[array([[ 1. ,  1. , -0.5], [ 1. ,  1. , -0.5]]),
 array([[ 2. ,  2. ,  2. ], [ 2. ,  1.7,  0.5]])]

Support for returning arrays of arbitrary dimensions in apply_along_axis

Previously, only scalars or 1D arrays could be returned by the function passed
to apply_along_axis. Now, it can return an array of any dimensionality
(including 0D), and the shape of this array replaces the axis of the array
being iterated over.

.ndim property added to dtype to complement .shape

For consistency with ndarray and broadcast, d.ndim is a shorthand
for len(d.shape).

Support for tracemalloc in Python 3.6

NumPy now supports memory tracing with tracemalloc_ module of Python 3.6 or
newer. Memory allocations from NumPy are placed into the domain defined by
numpy.lib.tracemalloc_domain.
Note that NumPy allocation will not show up in tracemalloc_ of earlier Python
versions.

.. _tracemalloc: https://docs.python.org/3/library/tracemalloc.html

NumPy may be built with relaxed stride checking debugging

Setting NPY_RELAXED_STRIDES_DEBUG=1 in the environment when relaxed stride
checking is enabled will cause NumPy to be compiled with the affected strides
set to the maximum value of npy_intp in order to help detect invalid usage of
the strides in downstream projects. When enabled, invalid usage often results
in an error being raised, but the exact type of error depends on the details of
the code. TypeError and OverflowError have been observed in the wild.

It was previously the case that this option was disabled for releases and
enabled in master and changing between the two required editing the code. It is
now disabled by default but can be enabled for test builds.

Improvements

Ufunc behavior for overlapping inputs

Operations where ufunc input and output operands have memory overlap
produced undefined results in previous NumPy versions, due to data
dependency issues. In NumPy 1.13.0, results from such operations are
now defined to be the same as for equivalent operations where there is
no memory overlap.

Operations affected now make temporary copies, as needed to eliminate
data dependency. As detecting these cases is computationally
expensive, a heuristic is used, which may in rare cases result to
needless temporary copies. For operations where the data dependency
is simple enough for the heuristic to analyze, temporary copies will
not be made even if the arrays overlap, if it can be deduced copies
are not necessary. As an example,np.add(a, b, out=a) will not
involve copies.

To illustrate a previously undefined operation::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[1:])

In NumPy 1.13.0 the last line is guaranteed to be equivalent to::

>>> np.add(x[1:].copy(), x[:-1].copy(), out=x[1:])

A similar operation with simple non-problematic data dependence is::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[:-1])

It will continue to produce the same results as in previous NumPy
versions, and will not involve unnecessary temporary copies.

The change applies also to in-place binary operations, for example::

>>> x = np.random.rand(500, 500)
>>> x += x.T

This statement is now guaranteed to be equivalent to x[...] = x + x.T,
whereas in previous NumPy versions the results were undefined.

Partial support for 64-bit f2py extensions with MinGW

Extensions that incorporate Fortran libraries can now be built using the free
MinGW_ toolset, also under Python 3.5. This works best for extensions that only
do calculations and uses the runtime modestly (reading and writing from files,
for instance). Note that this does not remove the need for Mingwpy; if you make
extensive use of the runtime, you will most likely run into issues_. Instead,
it should be regarded as a band-aid until Mingwpy is fully functional.

Extensions can also be compiled using the MinGW toolset using the runtime
library from the (moveable) WinPython 3.4 distribution, which can be useful for
programs with a PySide1/Qt4 front-end.

.. _MinGW: https://sf.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/6.2.0/threads-win32/seh/

.. _issues: https://mingwpy.github.io/issues.html

Performance improvements for packbits and unpackbits

The functions numpy.packbits with boolean input and numpy.unpackbits have
been optimized to be a significantly faster for contiguous data.

Fix for PPC long double floating point information

In previous versions of NumPy, the finfo function returned invalid
information about the double double_ format of the longdouble float type
on Power PC (PPC). The invalid values resulted from the failure of the NumPy
algorithm to deal with the variable number of digits in the significand
that are a feature of PPC long doubles. This release by-passes the failing
algorithm by using heuristics to detect the presence of the PPC double double
format. A side-effect of using these heuristics is that the finfo
function is faster than previous releases.

.. _PPC long doubles: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.genprogc/128bit_long_double_floating-point_datatype.htm

.. _double double: https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format#Double-double_arithmetic

Better default repr for ndarray subclasses

Subclasses of ndarray with no repr specialization now correctly indent
their data and type lines.

More reliable comparisons of masked arrays

Comparisons of masked arrays were buggy for masked scalars and failed for
structured arrays with dimension higher than one. Both problems are now
solved. In the process, it was ensured that in getting the result for a
structured array, masked fields are properly ignored, i.e., the result is equal
if all fields that are non-masked in both are equal, thus making the behaviour
identical to what one gets by comparing an unstructured masked array and then
doing .all() over some axis.

np.matrix with booleans elements can now be created using the string syntax

np.matrix failed whenever one attempts to use it with booleans, e.g.,
np.matrix('True'). Now, this works as expected.

More linalg operations now accept empty vectors and matrices

All of the following functions in np.linalg now work when given input
arrays with a 0 in the last two dimensions: det, slogdet, pinv,
eigvals, eigvalsh, eig, eigh.

Bundled version of LAPACK is now 3.2.2

NumPy comes bundled with a minimal implementation of lapack for systems without
a lapack library installed, under the name of lapack_lite. This has been
upgraded from LAPACK 3.0.0 (June 30, 1999) to LAPACK 3.2.2 (June 30, 2010). See
the LAPACK changelogs_ for details on the all the changes this entails.

While no new features are exposed through numpy, this fixes some bugs
regarding "workspace" sizes, and in some places may use faster algorithms.

.. _LAPACK changelogs: http://www.netlib.org/lapack/release_notes.html#_4_history_of_lapack_releases

reduce of np.hypot.reduce and np.logical_xor allowed in more cases

This now works on empty arrays, returning 0, and can reduce over multiple axes.
Previously, a ValueError was thrown in these cases.

Better repr of object arrays

Object arrays that contain themselves no longer cause a recursion error.

Object arrays that contain list objects are now printed in a way that makes
clear the difference between a 2d object array, and a 1d object array of lists.

Changes

argsort on masked arrays takes the same default arguments as sort

By default, argsort now places the masked values at the end of the sorted
array, in the same way that sort already did. Additionally, the
end_with argument is added to argsort, for consistency with sort.
Note that this argument is not added at the end, so breaks any code that
passed fill_value as a positional argument.

average now preserves subclasses

For ndarray subclasses, numpy.average will now return an instance of the
subclass, matching the behavior of most other NumPy functions such as mean.
As a consequence, also calls that returned a scalar may now return a subclass
array scalar.

array == None and array != None do element-wise comparison

Previously these operations returned scalars False and True respectively.

np.equal, np.not_equal for object arrays ignores object identity

Previously, these functions always treated identical objects as equal. This had
the effect of overriding comparison failures, comparison of objects that did
not return booleans, such as np.arrays, and comparison of objects where the
results differed from object identity, such as NaNs.

Boolean indexing changes

  • Boolean array-likes (such as lists of python bools) are always treated as
    boolean indexes.

  • Boolean scalars (including python True) are legal boolean indexes and
    never treated as integers.

  • Boolean indexes must match the dimension of the axis that they index.

  • Boolean indexes used on the lhs of an assignment must match the dimensions of
    the rhs.

  • Boolean indexing into scalar arrays return a new 1-d array. This means that
    array(1)[array(True)] gives array([1]) and not the original array.

np.random.multivariate_normal behavior with bad covariance matrix

It is now possible to adjust the behavior the function will have when dealing
with the covariance matrix by using two new keyword arguments:

  • tol can be used to specify a tolerance to use when checking that
    the covariance matrix is positive semidefinite.

  • check_valid can be used to configure what the function will do in the
    presence of a matrix that is not positive semidefinite. Valid options are
    ignore, warn and raise. The default value, warn keeps the
    the behavior used on previous releases.

assert_array_less compares np.inf and -np.inf now

Previously, np.testing.assert_array_less ignored all infinite values. This
is not the expected behavior both according to documentation and intuitively.
Now, -inf < x < inf is considered True for any real number x and all
other cases fail.

assert_array_ and masked arrays assert_equal hide less warnings

Some warnings that were previously hidden by the assert_array_
functions are not hidden anymore. In most cases the warnings should be
correct and, should they occur, will require changes to the tests using
these functions.
For the masked array assert_equal version, warnings may occur when
comparing NaT. The function presently does not handle NaT or NaN
specifically and it may be best to avoid it at this time should a warning
show up due to this change.

offset attribute value in memmap objects

The offset attribute in a memmap object is now set to the
offset into the file. This is a behaviour change only for offsets
greater than mmap.ALLOCATIONGRANULARITY.

np.real and np.imag return scalars for scalar inputs

Previously, np.real and np.imag used to return array objects when
provided a scalar input, which was inconsistent with other functions like
np.angle and np.conj.

The polynomial convenience classes cannot be passed to ufuncs

The ABCPolyBase class, from which the convenience classes are derived, sets
__array_ufun__ = None in order of opt out of ufuncs. If a polynomial
convenience class instance is passed as an argument to a ufunc, a TypeError
will now be raised.

Output arguments to ufuncs can be tuples also for ufunc methods

For calls to ufuncs, it was already possible, and recommended, to use an
out argument with a tuple for ufuncs with multiple outputs. This has now
been extended to output arguments in the reduce, accumulate, and
reduceat methods. This is mostly for compatibility with __array_ufunc;
there are no ufuncs yet that have more than one output.

Checksums

MD5

9a5e28a60ad340e06286650e6c9cdc86  numpy-1.13.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
2b55e8d75d346ce4b8b3d1a4bc4d1c7c  numpy-1.13.0-cp27-cp27m-manylinux1_i686.whl
f9bf8291b035084c1b044dd251f7b2f6  numpy-1.13.0-cp27-cp27m-manylinux1_x86_64.whl
ef3d34d9098c111e71d83befaf97a0e9  numpy-1.13.0-cp27-cp27mu-manylinux1_i686.whl
a0b187652045bfb4c014f24c921c644b  numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64.whl
e4e650f7208a4502c41c76dbd91dcb2f  numpy-1.13.0-cp27-none-win32.whl
543a4263ae9ca7d99c65bdd23315c00e  numpy-1.13.0-cp27-none-win_amd64.whl
c98b8ee7be1e9a628b1d64d89efae11e  numpy-1.13.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
daa0aff4c35c06dd63a9a2fb4b3bf3eb  numpy-1.13.0-cp34-cp34m-manylinux1_i686.whl
fb0974bef7d14cc7c8917adae4d1e339  numpy-1.13.0-cp34-cp34m-manylinux1_x86_64.whl
772aa4c3897428bf86762b5cd4f46c86  numpy-1.13.0-cp34-none-win32.whl
d7e12859429ffdfba21b2122988309db  numpy-1.13.0-cp34-none-win_amd64.whl
43c4d5904eb8b5a198d76f640cada8d7  numpy-1.13.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
bacdd650dbbb3911e6b7bdec07482122  numpy-1.13.0-cp35-cp35m-manylinux1_i686.whl
d6e6af5f3f5b5711501045b63e8281f4  numpy-1.13.0-cp35-cp35m-manylinux1_x86_64.whl
2627e76f99a7e4dd390968180af7f970  numpy-1.13.0-cp35-none-win32.whl
1cb3d06cc800477e8b98eacc0c8ebf12  numpy-1.13.0-cp35-none-win_amd64.whl
6683b00432fefd540c758f4c0b3ca5a4  numpy-1.13.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
7887b9dedad1117d1153138077e2c982  numpy-1.13.0-cp36-cp36m-manylinux1_i686.whl
0aff850a97da7772da3fc0510b5ef28c  numpy-1.13.0-cp36-cp36m-manylinux1_x86_64.whl
512d719b3bb8c1d7db79ea6d39031d46  numpy-1.13.0-cp36-none-win32.whl
30575a4ca25a896dfb2058d3b5ffd7b8  numpy-1.13.0-cp36-none-win_amd64.whl
39ae7fd9b6b09847cde5cd8ea0672757  numpy-1.13.0.tar.gz
fd044f0b8079abeaf5e6d2e93b2c1d03  numpy-1.13.0.zip

SHA256

e5dd9d9808ffcc053ea2c2f54fcd75c460843439daba65a699d6a2c9b8adcf27  numpy-1.13.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
3ccd4f3176a6ca26fdfe31f4648af47a5ce0f681adc8321fe91e621dd26b7aae  numpy-1.13.0-cp27-cp27m-manylinux1_i686.whl
ed9212e489ac7f76506969581f1abb53fc30ac45bb28254759b634f4f51f0217  numpy-1.13.0-cp27-cp27m-manylinux1_x86_64.whl
36d932daf153d41789a189e0c266877cd4f2b719a9f9b672e8c3586d01cf0643  numpy-1.13.0-cp27-cp27mu-manylinux1_i686.whl
5a9e42acf951c84d0fd349d677262d67b913fb399025e5885b7ade20b9a2ace9  numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64.whl
e0eb78fd246a965c7c232df88485c887916ec72a3c589ccbaa3f22dc8471b154  numpy-1.13.0-cp27-none-win32.whl
2dc292415b18f08efe615c26b1567dd986006c47dd6b23c870db483db8e95015  numpy-1.13.0-cp27-none-win_amd64.whl
2f1ba22250725b1c719591a07d2146509aae5c620c43ecb9669a45487f7b9c89  numpy-1.13.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
ee2bb63226aa933cddda2470e56de858669bdbb612b5bd7b2489408516bb3f24  numpy-1.13.0-cp34-cp34m-manylinux1_i686.whl
da0be0d25e845d65f540c92daa17b1bad06c3ed98a54840e6b980cb5d683647f  numpy-1.13.0-cp34-cp34m-manylinux1_x86_64.whl
560ca5248c2a8fd96ac75a05811eca0ce08dfeea2ee128c87c9c7261af366288  numpy-1.13.0-cp34-none-win32.whl
0c9c2da161951a041fc01ec1849555532122d6fd5b41144af81ae322e88bf0ef  numpy-1.13.0-cp34-none-win_amd64.whl
ad699f255fba63814f7d55f67c4bf315fb5496f5ba6e0799ed11b00e78bf464f  numpy-1.13.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
70c30db61dbc10dd5bcb63e830aa8c2ce993eb6821054abce372f04cd36f9bb5  numpy-1.13.0-cp35-cp35m-manylinux1_i686.whl
e17a9ec296353b01596b5e669265418343b8d0f2dd82f541d0cf9a3fc7eaccc8  numpy-1.13.0-cp35-cp35m-manylinux1_x86_64.whl
ce7b3c0644c9157874d1323906c497c92296ae956e5cef0e4107e1ff55939386  numpy-1.13.0-cp35-none-win32.whl
78ef0f0e2e1701a54555ecb7d2916375dcac462b6511d5cdb2de8a2f2296f501  numpy-1.13.0-cp35-none-win_amd64.whl
4e9756c9882836690c6cfad0ae3fae51050d78a5766d3e9ecc7a8385425fb92a  numpy-1.13.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
27b12b7412c6a1a6bdfd2142aa4c31ca54f0981d36fba787e4a92d4ff22d23a7  numpy-1.13.0-cp36-cp36m-manylinux1_i686.whl
dc703270f1caabbe361052ef678d5a5f18f91dfe36b1c5572d0b60dba4835eb5  numpy-1.13.0-cp36-cp36m-manylinux1_x86_64.whl
e8edf465be222e324608fd5dd58d60b050c7fd602c9b7710a11631ee7280f59f  numpy-1.13.0-cp36-none-win32.whl
a61fd38d1ec67a5e3f0121522b3dddef4ba1407d175135447397cb8baec17860  numpy-1.13.0-cp36-none-win_amd64.whl
779dd7846dd1d864eb1e239916d25ec57c4889ad92de8ab364306bed84b7237f  numpy-1.13.0.tar.gz
dcff367b725586830ff0e20b805c7654c876c2d4585c0834a6049502b9d6cf7e  numpy-1.13.0.zip
numpy -

Published by charris over 7 years ago

==========================
NumPy 1.13.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

  • Operations like a + b + c will reuse temporaries on some platforms,
    resulting in less memory use and faster execution.
  • Inplace operations check if inputs overlap outputs and create temporaries
    to avoid problems.
  • New __array_ufunc__ attribute provides improved ability for classes to
    override default ufunc behavior.
  • New np.block function for creating blocked arrays.

New functions

  • New np.positive ufunc.
  • New np.divmod ufunc provides more efficient divmod.
  • New np.isnat ufunc tests for NaT special values.
  • New np.heaviside ufunc computes the Heaviside function.
  • New np.isin function, improves on in1d.
  • New np.block function for creating blocked arrays.
  • New PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API.

See below for details.

Deprecations

  • Calling np.fix, np.isposinf, and np.isneginf with f(x, y=out)
    is deprecated - the argument should be passed as f(x, out=out), which
    matches other ufunc-like interfaces.
  • Use of the C-API NPY_CHAR type number deprecated since version 1.7 will
    now raise deprecation warnings at runtime. Extensions built with older f2py
    versions need to be recompiled to remove the warning.
  • np.ma.argsort, np.ma.minimum.reduce, and np.ma.maximum.reduce
    should be called with an explicit axis argument when applied to arrays with
    more than 2 dimensions, as the default value of this argument (None) is
    inconsistent with the rest of numpy (-1, 0, and 0, respectively).
  • np.ma.MaskedArray.mini is deprecated, as it almost duplicates the
    functionality of np.MaskedArray.min. Exactly equivalent behaviour
    can be obtained with np.ma.minimum.reduce.
  • The single-argument form of np.ma.minimum and np.ma.maximum is
    deprecated. np.maximum. np.ma.minimum(x) should now be spelt
    np.ma.minimum.reduce(x), which is consistent with how this would be done
    with np.minimum.
  • Calling ndarray.conjugate on non-numeric dtypes is deprecated (it
    should match the behavior of np.conjugate, which throws an error).
  • Calling expand_dims when the axis keyword does not satisfy
    -a.ndim - 1 <= axis <= a.ndim, where a is the array being reshaped,
    is deprecated.

Future Changes

  • Assignment between structured arrays with different field names will change
    in NumPy 1.14. Previously, fields in the dst would be set to the value of the
    identically-named field in the src. In numpy 1.14 fields will instead be
    assigned 'by position': The n-th field of the dst will be set to the n-th
    field of the src array. Note that the FutureWarning raised in NumPy 1.12
    incorrectly reported this change as scheduled for NumPy 1.13 rather than
    NumPy 1.14.

Build System Changes

  • numpy.distutils now automatically determines C-file dependencies with
    GCC compatible compilers.

Compatibility notes

Error type changes

  • numpy.hstack() now throws ValueError instead of IndexError when
    input is empty.
  • Functions taking an axis argument, when that argument is out of range, now
    throw np.AxisError instead of a mixture of IndexError and
    ValueError. For backwards compatibility, AxisError subclasses both of
    these.

Tuple object dtypes

Support has been removed for certain obscure dtypes that were unintentionally
allowed, of the form (old_dtype, new_dtype), where either of the dtypes
is or contains the object dtype. As an exception, dtypes of the form
(object, [('name', object)]) are still supported due to evidence of
existing use.

DeprecationWarning to error

See Changes section for more detail.

  • partition, TypeError when non-integer partition index is used.
  • NpyIter_AdvancedNew, ValueError when oa_ndim == 0 and op_axes is NULL
  • negative(bool_), TypeError when negative applied to booleans.
  • subtract(bool_, bool_), TypeError when subtracting boolean from boolean.
  • np.equal, np.not_equal, object identity doesn't override failed comparison.
  • np.equal, np.not_equal, object identity doesn't override non-boolean comparison.
  • Deprecated boolean indexing behavior dropped. See Changes below for details.
  • Deprecated np.alterdot() and np.restoredot() removed.

FutureWarning to changed behavior

See Changes section for more detail.

  • numpy.average preserves subclasses
  • array == None and array != None do element-wise comparison.
  • np.equal, np.not_equal, object identity doesn't override comparison result.

dtypes are now always true

Previously bool(dtype) would fall back to the default python
implementation, which checked if len(dtype) > 0. Since dtype objects
implement __len__ as the number of record fields, bool of scalar dtypes
would evaluate to False, which was unintuitive. Now bool(dtype) == True
for all dtypes.

__getslice__ and __setslice__ are no longer needed in ndarray subclasses

When subclassing np.ndarray in Python 2.7, it is no longer necessary to
implement __*slice__ on the derived class, as __*item__ will intercept
these calls correctly.

Any code that did implement these will work exactly as before. Code that
invokesndarray.__getslice__ (e.g. through super(...).__getslice__) will
now issue a DeprecationWarning - .__getitem__(slice(start, end)) should be
used instead.

Indexing MaskedArrays/Constants with ... (ellipsis) now returns MaskedArray

This behavior mirrors that of np.ndarray, and accounts for nested arrays in
MaskedArrays of object dtype, and ellipsis combined with other forms of
indexing.

C API changes

GUfuncs on empty arrays and NpyIter axis removal

It is now allowed to remove a zero-sized axis from NpyIter. Which may mean
that code removing axes from NpyIter has to add an additional check when
accessing the removed dimensions later on.

The largest followup change is that gufuncs are now allowed to have zero-sized
inner dimensions. This means that a gufunc now has to anticipate an empty inner
dimension, while this was never possible and an error raised instead.

For most gufuncs no change should be necessary. However, it is now possible
for gufuncs with a signature such as (..., N, M) -> (..., M) to return
a valid result if N=0 without further wrapping code.

PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API

Similar to PyArray_MapIterArray but with an additional copy_if_overlap
argument. If copy_if_overlap != 0, checks if input has memory overlap with
any of the other arrays and make copies as appropriate to avoid problems if the
input is modified during the iteration. See the documentation for more complete
documentation.

New Features

__array_ufunc__ added

This is the renamed and redesigned __numpy_ufunc__. Any class, ndarray
subclass or not, can define this method or set it to None in order to
override the behavior of NumPy's ufuncs. This works quite similarly to Python's
__mul__ and other binary operation routines. See the documentation for a
more detailed description of the implementation and behavior of this new
option. The API is provisional, we do not yet guarantee backward compatibility
as modifications may be made pending feedback. See the NEP_ and
documentation_ for more details.

.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/ufunc-overrides.rst
.. _documentation: https://github.com/charris/numpy/blob/master/doc/source/reference/arrays.classes.rst

New positive ufunc

This ufunc corresponds to unary +, but unlike + on an ndarray it will raise
an error if array values do not support numeric operations.

New divmod ufunc

This ufunc corresponds to the Python builtin divmod, and is used to implement
divmod when called on numpy arrays. np.divmod(x, y) calculates a result
equivalent to (np.floor_divide(x, y), np.remainder(x, y)) but is
approximately twice as fast as calling the functions separately.

np.isnat ufunc tests for NaT special datetime and timedelta values

The new ufunc np.isnat finds the positions of special NaT values
within datetime and timedelta arrays. This is analogous to np.isnan.

np.heaviside ufunc computes the Heaviside function

The new function np.heaviside(x, h0) (a ufunc) computes the Heaviside
function:
.. code::
{ 0 if x < 0,
heaviside(x, h0) = { h0 if x == 0,
{ 1 if x > 0.

np.block function for creating blocked arrays

Add a new block function to the current stacking functions vstack,
hstack, and stack. This allows concatenation across multiple axes
simultaneously, with a similar syntax to array creation, but where elements
can themselves be arrays. For instance::

>>> A = np.eye(2) * 2
>>> B = np.eye(3) * 3
>>> np.block([
...     [A,               np.zeros((2, 3))],
...     [np.ones((3, 2)), B               ]
... ])
array([[ 2.,  0.,  0.,  0.,  0.],
       [ 0.,  2.,  0.,  0.,  0.],
       [ 1.,  1.,  3.,  0.,  0.],
       [ 1.,  1.,  0.,  3.,  0.],
       [ 1.,  1.,  0.,  0.,  3.]])

While primarily useful for block matrices, this works for arbitrary dimensions
of arrays.

It is similar to Matlab's square bracket notation for creating block matrices.

isin function, improving on in1d

The new function isin tests whether each element of an N-dimensonal
array is present anywhere within a second array. It is an enhancement
of in1d that preserves the shape of the first array.

Temporary elision

On platforms providing the backtrace function NumPy will try to avoid
creating temporaries in expression involving basic numeric types.
For example d = a + b + c is transformed to d = a + b; d += c which can
improve performance for large arrays as less memory bandwidth is required to
perform the operation.

axes argument for unique

In an N-dimensional array, the user can now choose the axis along which to look
for duplicate N-1-dimensional elements using numpy.unique. The original
behaviour is recovered if axis=None (default).

np.gradient now supports unevenly spaced data

Users can now specify a not-constant spacing for data.
In particular np.gradient can now take:

  1. A single scalar to specify a sample distance for all dimensions.
  2. N scalars to specify a constant sample distance for each dimension.
    i.e. dx, dy, dz, ...
  3. N arrays to specify the coordinates of the values along each dimension of F.
    The length of the array must match the size of the corresponding dimension
  4. Any combination of N scalars/arrays with the meaning of 2. and 3.

This means that, e.g., it is now possible to do the following::

>>> f = np.array([[1, 2, 6], [3, 4, 5]], dtype=np.float)
>>> dx = 2.
>>> y = [1., 1.5, 3.5]
>>> np.gradient(f, dx, y)
[array([[ 1. ,  1. , -0.5], [ 1. ,  1. , -0.5]]),
 array([[ 2. ,  2. ,  2. ], [ 2. ,  1.7,  0.5]])]

Support for returning arrays of arbitrary dimensions in apply_along_axis

Previously, only scalars or 1D arrays could be returned by the function passed
to apply_along_axis. Now, it can return an array of any dimensionality
(including 0D), and the shape of this array replaces the axis of the array
being iterated over.

.ndim property added to dtype to complement .shape

For consistency with ndarray and broadcast, d.ndim is a shorthand
for len(d.shape).

Support for tracemalloc in Python 3.6

NumPy now supports memory tracing with tracemalloc_ module of Python 3.6 or
newer. Memory allocations from NumPy are placed into the domain defined by
numpy.lib.tracemalloc_domain.
Note that NumPy allocation will not show up in tracemalloc_ of earlier Python
versions.

.. _tracemalloc: https://docs.python.org/3/library/tracemalloc.html

NumPy may be built with relaxed stride checking debugging

Setting NPY_RELAXED_STRIDES_DEBUG=1 in the environment when relaxed stride
checking is enabled will cause NumPy to be compiled with the affected strides
set to the maximum value of npy_intp in order to help detect invalid usage of
the strides in downstream projects. When enabled, invalid usage often results
in an error being raised, but the exact type of error depends on the details of
the code. TypeError and OverflowError have been observed in the wild.

It was previously the case that this option was disabled for releases and
enabled in master and changing between the two required editing the code. It is
now disabled by default but can be enabled for test builds.

Improvements

Ufunc behavior for overlapping inputs

Operations where ufunc input and output operands have memory overlap
produced undefined results in previous NumPy versions, due to data
dependency issues. In NumPy 1.13.0, results from such operations are
now defined to be the same as for equivalent operations where there is
no memory overlap.

Operations affected now make temporary copies, as needed to eliminate
data dependency. As detecting these cases is computationally
expensive, a heuristic is used, which may in rare cases result to
needless temporary copies. For operations where the data dependency
is simple enough for the heuristic to analyze, temporary copies will
not be made even if the arrays overlap, if it can be deduced copies
are not necessary. As an example,np.add(a, b, out=a) will not
involve copies.

To illustrate a previously undefined operation::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[1:])

In NumPy 1.13.0 the last line is guaranteed to be equivalent to::

>>> np.add(x[1:].copy(), x[:-1].copy(), out=x[1:])

A similar operation with simple non-problematic data dependence is::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[:-1])

It will continue to produce the same results as in previous NumPy
versions, and will not involve unnecessary temporary copies.

The change applies also to in-place binary operations, for example::

>>> x = np.random.rand(500, 500)
>>> x += x.T

This statement is now guaranteed to be equivalent to x[...] = x + x.T,
whereas in previous NumPy versions the results were undefined.

Partial support for 64-bit f2py extensions with MinGW

Extensions that incorporate Fortran libraries can now be built using the free
MinGW_ toolset, also under Python 3.5. This works best for extensions that only
do calculations and uses the runtime modestly (reading and writing from files,
for instance). Note that this does not remove the need for Mingwpy; if you make
extensive use of the runtime, you will most likely run into issues_. Instead,
it should be regarded as a band-aid until Mingwpy is fully functional.

Extensions can also be compiled using the MinGW toolset using the runtime
library from the (moveable) WinPython 3.4 distribution, which can be useful for
programs with a PySide1/Qt4 front-end.

.. _MinGW: https://sf.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/6.2.0/threads-win32/seh/

.. _issues: https://mingwpy.github.io/issues.html

Performance improvements for packbits and unpackbits

The functions numpy.packbits with boolean input and numpy.unpackbits have
been optimized to be a significantly faster for contiguous data.

Fix for PPC long double floating point information

In previous versions of NumPy, the finfo function returned invalid
information about the double double_ format of the longdouble float type
on Power PC (PPC). The invalid values resulted from the failure of the NumPy
algorithm to deal with the variable number of digits in the significand
that are a feature of PPC long doubles. This release by-passes the failing
algorithm by using heuristics to detect the presence of the PPC double double
format. A side-effect of using these heuristics is that the finfo
function is faster than previous releases.

.. _PPC long doubles: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.genprogc/128bit_long_double_floating-point_datatype.htm

.. _double double: https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format#Double-double_arithmetic

Better default repr for ndarray subclasses

Subclasses of ndarray with no repr specialization now correctly indent
their data and type lines.

More reliable comparisons of masked arrays

Comparisons of masked arrays were buggy for masked scalars and failed for
structured arrays with dimension higher than one. Both problems are now
solved. In the process, it was ensured that in getting the result for a
structured array, masked fields are properly ignored, i.e., the result is equal
if all fields that are non-masked in both are equal, thus making the behaviour
identical to what one gets by comparing an unstructured masked array and then
doing .all() over some axis.

np.matrix with booleans elements can now be created using the string syntax

np.matrix failed whenever one attempts to use it with booleans, e.g.,
np.matrix('True'). Now, this works as expected.

More linalg operations now accept empty vectors and matrices

All of the following functions in np.linalg now work when given input
arrays with a 0 in the last two dimensions: det, slogdet, pinv,
eigvals, eigvalsh, eig, eigh.

Bundled version of LAPACK is now 3.2.2

NumPy comes bundled with a minimal implementation of lapack for systems without
a lapack library installed, under the name of lapack_lite. This has been
upgraded from LAPACK 3.0.0 (June 30, 1999) to LAPACK 3.2.2 (June 30, 2010). See
the LAPACK changelogs_ for details on the all the changes this entails.

While no new features are exposed through numpy, this fixes some bugs
regarding "workspace" sizes, and in some places may use faster algorithms.

.. _LAPACK changelogs: http://www.netlib.org/lapack/release_notes.html#_4_history_of_lapack_releases

reduce of np.hypot.reduce and np.logical_xor allowed in more cases

This now works on empty arrays, returning 0, and can reduce over multiple axes.
Previously, a ValueError was thrown in these cases.

Better repr of object arrays

Object arrays that contain themselves no longer cause a recursion error.

Object arrays that contain list objects are now printed in a way that makes
clear the difference between a 2d object array, and a 1d object array of lists.

Changes

argsort on masked arrays takes the same default arguments as sort

By default, argsort now places the masked values at the end of the sorted
array, in the same way that sort already did. Additionally, the
end_with argument is added to argsort, for consistency with sort.
Note that this argument is not added at the end, so breaks any code that
passed fill_value as a positional argument.

average now preserves subclasses

For ndarray subclasses, numpy.average will now return an instance of the
subclass, matching the behavior of most other NumPy functions such as mean.
As a consequence, also calls that returned a scalar may now return a subclass
array scalar.

array == None and array != None do element-wise comparison

Previously these operations returned scalars False and True respectively.

np.equal, np.not_equal for object arrays ignores object identity

Previously, these functions always treated identical objects as equal. This had
the effect of overriding comparison failures, comparison of objects that did
not return booleans, such as np.arrays, and comparison of objects where the
results differed from object identity, such as NaNs.

Boolean indexing changes

  • Boolean array-likes (such as lists of python bools) are always treated as
    boolean indexes.

  • Boolean scalars (including python True) are legal boolean indexes and
    never treated as integers.

  • Boolean indexes must match the dimension of the axis that they index.

  • Boolean indexes used on the lhs of an assignment must match the dimensions of
    the rhs.

  • Boolean indexing into scalar arrays return a new 1-d array. This means that
    array(1)[array(True)] gives array([1]) and not the original array.

np.random.multivariate_normal behavior with bad covariance matrix

It is now possible to adjust the behavior the function will have when dealing
with the covariance matrix by using two new keyword arguments:

  • tol can be used to specify a tolerance to use when checking that
    the covariance matrix is positive semidefinite.

  • check_valid can be used to configure what the function will do in the
    presence of a matrix that is not positive semidefinite. Valid options are
    ignore, warn and raise. The default value, warn keeps the
    the behavior used on previous releases.

assert_array_less compares np.inf and -np.inf now

Previously, np.testing.assert_array_less ignored all infinite values. This
is not the expected behavior both according to documentation and intuitively.
Now, -inf < x < inf is considered True for any real number x and all
other cases fail.

assert_array_ and masked arrays assert_equal hide less warnings

Some warnings that were previously hidden by the assert_array_
functions are not hidden anymore. In most cases the warnings should be
correct and, should they occur, will require changes to the tests using
these functions.
For the masked array assert_equal version, warnings may occur when
comparing NaT. The function presently does not handle NaT or NaN
specifically and it may be best to avoid it at this time should a warning
show up due to this change.

offset attribute value in memmap objects

The offset attribute in a memmap object is now set to the
offset into the file. This is a behaviour change only for offsets
greater than mmap.ALLOCATIONGRANULARITY.

np.real and np.imag return scalars for scalar inputs

Previously, np.real and np.imag used to return array objects when
provided a scalar input, which was inconsistent with other functions like
np.angle and np.conj.

The polynomial convenience classes cannot be passed to ufuncs

The ABCPolyBase class, from which the convenience classes are derived, sets
__array_ufun__ = None in order of opt out of ufuncs. If a polynomial
convenience class instance is passed as an argument to a ufunc, a TypeError
will now be raised.

Output arguments to ufuncs can be tuples also for ufunc methods

For calls to ufuncs, it was already possible, and recommended, to use an
out argument with a tuple for ufuncs with multiple outputs. This has now
been extended to output arguments in the reduce, accumulate, and
reduceat methods. This is mostly for compatibility with __array_ufunc;
there are no ufuncs yet that have more than one output.

Checksums

MD5

1452d9b7f79345d9726ab4186a6b7944  numpy-1.13.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
49d0bec7cc8be06d938b73bb6029ca35  numpy-1.13.0rc2-cp27-cp27m-manylinux1_i686.whl
82ec58322dbadbfab64bb7222479573d  numpy-1.13.0rc2-cp27-cp27m-manylinux1_x86_64.whl
5bf00d81e5762a1efba456d11cf559a3  numpy-1.13.0rc2-cp27-cp27mu-manylinux1_i686.whl
ab8ac1c26b3ee267ed091999b49a1cf1  numpy-1.13.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
1bd920951186623e0dd8953728e1f993  numpy-1.13.0rc2-cp27-none-win32.whl
d7b1d84393717da3fecb8f35997c2907  numpy-1.13.0rc2-cp27-none-win_amd64.whl
a2e745289af350356d9c6eb6e7794fc1  numpy-1.13.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
084449d53d652765a3c6bf2ac4967334  numpy-1.13.0rc2-cp34-cp34m-manylinux1_i686.whl
1246cc8391b9e6b7f23c14eb38213bbe  numpy-1.13.0rc2-cp34-cp34m-manylinux1_x86_64.whl
9cd076733a1827c5818a79620767ab07  numpy-1.13.0rc2-cp34-none-win32.whl
0918a3ff968d4cdb2665810510ef5bd7  numpy-1.13.0rc2-cp34-none-win_amd64.whl
decc46e13bde8212432ab74f015faf83  numpy-1.13.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
9350c2f65499d218c9576ca411e07b3c  numpy-1.13.0rc2-cp35-cp35m-manylinux1_i686.whl
e30ac720d9838cd461e23cf7a1cc974c  numpy-1.13.0rc2-cp35-cp35m-manylinux1_x86_64.whl
aeac6dfd59d946386dcf2b4bc01a240a  numpy-1.13.0rc2-cp35-none-win32.whl
212cbe4262a4f41f155f4581b724f4f5  numpy-1.13.0rc2-cp35-none-win_amd64.whl
a9a104503e72ee9ad9d5ab34693e6c1c  numpy-1.13.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
518cac61989ae8ad5a9c1867120b31d1  numpy-1.13.0rc2-cp36-cp36m-manylinux1_i686.whl
fd726119ce09ff5175714d237b2dc7fa  numpy-1.13.0rc2-cp36-cp36m-manylinux1_x86_64.whl
6a83d8c02b6202ec71d87e4ed349c8b4  numpy-1.13.0rc2-cp36-none-win32.whl
4686607e85bd7cb58a381ae16a6155b0  numpy-1.13.0rc2-cp36-none-win_amd64.whl
3ec440d459102bc85bd5318950543c4f  numpy-1.13.0rc2.tar.gz
7a43a7fcc309a3d6a1829471dde053fd  numpy-1.13.0rc2.zip

SHA256

11f56500fe229335256af1f41f7ec8f3239852e4e6bd6a452e9a779f3c2759bc  numpy-1.13.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
29101405ee4407ce0e416c283c12c037fb217716502c6091ab23a6002cf51ba7  numpy-1.13.0rc2-cp27-cp27m-manylinux1_i686.whl
04e46ea124d39420921dfe2dcf77e855d331be7bbbe0ea3eb468b77331bc338c  numpy-1.13.0rc2-cp27-cp27m-manylinux1_x86_64.whl
75330d1caebb7116e3e5024474e9b20c5fc458dc7b075736651f7d83f8812ad8  numpy-1.13.0rc2-cp27-cp27mu-manylinux1_i686.whl
d350ac46677f842b24b02a2b181ed29d10604ad987f9f254c375d300663aa3db  numpy-1.13.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
64dd3e9d732099d486c960bb92ea91f1381e3f3ccfc617934aa02a57c3bcc26a  numpy-1.13.0rc2-cp27-none-win32.whl
7ca35a8d3e06e192f88caa80afafe717414de7b3cd6949f5a0e2ebfbec12bc11  numpy-1.13.0rc2-cp27-none-win_amd64.whl
6e9ba1a44d981b9dcb30c0e32e66ca882345b71d98a56390a50f06c2161ba051  numpy-1.13.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
5aee21c86c812d8450a6c3ab9fefebb5eef0fcb0221d4c338790fe135b266cfb  numpy-1.13.0rc2-cp34-cp34m-manylinux1_i686.whl
f49e2122768ba5fd9b8bb71e992416c61011edfbf9c6e9132fb80e865be671ac  numpy-1.13.0rc2-cp34-cp34m-manylinux1_x86_64.whl
2a338a63177a4952f9fe9375ea06ce3b8808017a83daf51b46e0f9b0f9dc890d  numpy-1.13.0rc2-cp34-none-win32.whl
12e10f354fee4000651962e8ad3e8ea93675b14d0e9aaf678a834b94abc65d42  numpy-1.13.0rc2-cp34-none-win_amd64.whl
7f2c683d8913187d6a3d68a32cfe33cfe319fc5fd487e30bf00979a8e244ee44  numpy-1.13.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
9f3e2805ce63617aab629466131cf33d14458b47298553327643d73badef95de  numpy-1.13.0rc2-cp35-cp35m-manylinux1_i686.whl
8a6bc85e0c799d65aba70369ad4f8c59dedc7934ab61cd0fe1d1c02401e0831c  numpy-1.13.0rc2-cp35-cp35m-manylinux1_x86_64.whl
b9998808530ce64dfe6dab7d031858f5eaf0d6c0316c515ad6d1211a383a3f59  numpy-1.13.0rc2-cp35-none-win32.whl
d9ef87ecd5f58a06e2bf2abc06987f2339572bf328bbb4efde53a01c6a160b8e  numpy-1.13.0rc2-cp35-none-win_amd64.whl
41746bbe7ffd33c4532d3fec770d5689eb9fc038c808dec33e8a10338811899d  numpy-1.13.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
961b20ac30251f58f1caff5b68fbf23f48f8ab797670c60ff6454c593c824646  numpy-1.13.0rc2-cp36-cp36m-manylinux1_i686.whl
b40ea7788ba99d742dd20afaf278b7c692c25fb637b3226cfa86575984827266  numpy-1.13.0rc2-cp36-cp36m-manylinux1_x86_64.whl
ac7cf3fae8f86451118f03f07c2858533962adca859cf89bf27ce18dde0ea0e6  numpy-1.13.0rc2-cp36-none-win32.whl
a4597e75db434e061d013cd1abedf7f2b3c3047a447e5d72ab7b228e2e5c65f4  numpy-1.13.0rc2-cp36-none-win_amd64.whl
c16f19b0cb611f9efbbe36a407b10eb53fa91952346064a9be7625f239599e5b  numpy-1.13.0rc2.tar.gz
ddecd003f6a9cd9db73e6d42af4b8cf894ae827c8093768b2dd21c6785e50048  numpy-1.13.0rc2.zip
numpy -

Published by charris over 7 years ago

==========================
NumPy 1.13.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

  • Operations like a + b + c will reuse temporaries on some platforms,
    resulting in less memory use and faster execution.
  • Inplace operations check if inputs overlap outputs and create temporaries
    to avoid problems.
  • New __array_ufunc__ attribute provides improved ability for classes to
    override default ufunc behavior.
  • New np.block function for creating blocked arrays.

New functions

  • New np.positive ufunc.
  • New np.divmod ufunc provides more efficient divmod.
  • New np.isnat ufunc tests for NaT special values.
  • New np.heaviside ufunc computes the Heaviside function.
  • New np.isin function, improves on in1d.
  • New np.block function for creating blocked arrays.
  • New PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API.

See below for details.

Deprecations

  • Calling np.fix, np.isposinf, and np.isneginf with f(x, y=out)
    is deprecated - the argument should be passed as f(x, out=out), which
    matches other ufunc-like interfaces.
  • Use of the C-API NPY_CHAR type number deprecated since version 1.7 will
    now raise deprecation warnings at runtime. Extensions built with older f2py
    versions need to be recompiled to remove the warning.
  • np.ma.argsort, np.ma.minimum.reduce, and np.ma.maximum.reduce
    should be called with an explicit axis argument when applied to arrays with
    more than 2 dimensions, as the default value of this argument (None) is
    inconsistent with the rest of numpy (-1, 0, and 0, respectively).
  • np.ma.MaskedArray.mini is deprecated, as it almost duplicates the
    functionality of np.MaskedArray.min. Exactly equivalent behaviour
    can be obtained with np.ma.minimum.reduce.
  • The single-argument form of np.ma.minimum and np.ma.maximum is
    deprecated. np.maximum. np.ma.minimum(x) should now be spelt
    np.ma.minimum.reduce(x), which is consistent with how this would be done
    with np.minimum.
  • Calling ndarray.conjugate on non-numeric dtypes is deprecated (it
    should match the behavior of np.conjugate, which throws an error).

Future Changes

  • Assignment between structured arrays with different field names will change
    in NumPy 1.14. Previously, fields in the dst would be set to the value of the
    identically-named field in the src. In numpy 1.14 fields will instead be
    assigned 'by position': The n-th field of the dst will be set to the n-th
    field of the src array. Note that the FutureWarning raised in NumPy 1.12
    incorrectly reported this change as scheduled for NumPy 1.13 rather than
    NumPy 1.14.

Build System Changes

  • numpy.distutils now automatically determines C-file dependencies with
    GCC compatible compilers.

Compatibility notes

Error type changes

  • numpy.hstack() now throws ValueError instead of IndexError when
    input is empty.
  • Functions taking an axis argument, when that argument is out of range, now
    throw np.AxisError instead of a mixture of IndexError and
    ValueError. For backwards compatibility, AxisError subclasses both of
    these.

Tuple object dtypes

Support has been removed for certain obscure dtypes that were unintentionally
allowed, of the form (old_dtype, new_dtype), where either of the dtypes
is or contains the object dtype. As an exception, dtypes of the form
(object, [('name', object)]) are still supported due to evidence of
existing use.

DeprecationWarning to error

See Changes section for more detail.

  • partition, TypeError when non-integer partition index is used.
  • NpyIter_AdvancedNew, ValueError when oa_ndim == 0 and op_axes is NULL
  • negative(bool_), TypeError when negative applied to booleans.
  • subtract(bool_, bool_), TypeError when subtracting boolean from boolean.
  • np.equal, np.not_equal, object identity doesn't override failed comparison.
  • np.equal, np.not_equal, object identity doesn't override non-boolean comparison.
  • Deprecated boolean indexing behavior dropped. See Changes below for details.
  • Deprecated np.alterdot() and np.restoredot() removed.

FutureWarning to changed behavior

See Changes section for more detail.

  • numpy.average preserves subclasses
  • array == None and array != None do element-wise comparison.
  • np.equal, np.not_equal, object identity doesn't override comparison result.

dtypes are now always true

Previously bool(dtype) would fall back to the default python
implementation, which checked if len(dtype) > 0. Since dtype objects
implement __len__ as the number of record fields, bool of scalar dtypes
would evaluate to False, which was unintuitive. Now bool(dtype) == True
for all dtypes.

__getslice__ and __setslice__ are no longer needed in ndarray subclasses

When subclassing np.ndarray in Python 2.7, it is no longer necessary to
implement __*slice__ on the derived class, as __*item__ will intercept
these calls correctly.

Any code that did implement these will work exactly as before. Code that
invokesndarray.__getslice__ (e.g. through super(...).__getslice__) will
now issue a DeprecationWarning - .__getitem__(slice(start, end)) should be
used instead.

C API changes

GUfuncs on empty arrays and NpyIter axis removal

It is now allowed to remove a zero-sized axis from NpyIter. Which may mean
that code removing axes from NpyIter has to add an additional check when
accessing the removed dimensions later on.

The largest followup change is that gufuncs are now allowed to have zero-sized
inner dimensions. This means that a gufunc now has to anticipate an empty inner
dimension, while this was never possible and an error raised instead.

For most gufuncs no change should be necessary. However, it is now possible
for gufuncs with a signature such as (..., N, M) -> (..., M) to return
a valid result if N=0 without further wrapping code.

PyArray_MapIterArrayCopyIfOverlap added to NumPy C-API

Similar to PyArray_MapIterArray but with an additional copy_if_overlap
argument. If copy_if_overlap != 0, checks if input has memory overlap with
any of the other arrays and make copies as appropriate to avoid problems if the
input is modified during the iteration. See the documentation for more complete
documentation.

New Features

__array_ufunc__ added

This is the renamed and redesigned __numpy_ufunc__. Any class, ndarray
subclass or not, can define this method or set it to None in order to
override the behavior of NumPy's ufuncs. This works quite similarly to Python's
__mul__ and other binary operation routines. See the documentation for a
more detailed description of the implementation and behavior of this new
option. The API is provisional, we do not yet guarantee backward compatibility
as modifications may be made pending feedback. See the NEP_ and
documentation_ for more details.

.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/ufunc-overrides.rst
.. _documentation: https://github.com/charris/numpy/blob/master/doc/source/reference/arrays.classes.rst

New positive ufunc

This ufunc corresponds to unary +, but unlike + on an ndarray it will raise
an error if array values do not support numeric operations.

New divmod ufunc

This ufunc corresponds to the Python builtin divmod, and is used to implement
divmod when called on numpy arrays. np.divmod(x, y) calculates a result
equivalent to (np.floor_divide(x, y), np.remainder(x, y)) but is
approximately twice as fast as calling the functions separately.

np.isnat ufunc tests for NaT special datetime and timedelta values

The new ufunc np.isnat finds the positions of special NaT values
within datetime and timedelta arrays. This is analogous to np.isnan.

np.heaviside ufunc computes the Heaviside function

The new function np.heaviside(x, h0) (a ufunc) computes the Heaviside
function:
.. code::
{ 0 if x < 0,
heaviside(x, h0) = { h0 if x == 0,
{ 1 if x > 0.

np.block function for creating blocked arrays

Add a new block function to the current stacking functions vstack,
hstack, and stack. This allows concatenation across multiple axes
simultaneously, with a similar syntax to array creation, but where elements
can themselves be arrays. For instance::

>>> A = np.eye(2) * 2
>>> B = np.eye(3) * 3
>>> np.block([
...     [A,               np.zeros((2, 3))],
...     [np.ones((3, 2)), B               ]
... ])
array([[ 2.,  0.,  0.,  0.,  0.],
       [ 0.,  2.,  0.,  0.,  0.],
       [ 1.,  1.,  3.,  0.,  0.],
       [ 1.,  1.,  0.,  3.,  0.],
       [ 1.,  1.,  0.,  0.,  3.]])

While primarily useful for block matrices, this works for arbitrary dimensions
of arrays.

It is similar to Matlab's square bracket notation for creating block matrices.

isin function, improving on in1d

The new function isin tests whether each element of an N-dimensonal
array is present anywhere within a second array. It is an enhancement
of in1d that preserves the shape of the first array.

Temporary elision

On platforms providing the backtrace function NumPy will now not create
temporaries in expression when possible.
For example d = a + b + c is transformed to d = a + b; d += c which can
improve performance for large arrays as less memory bandwidth is required to
perform the operation.

axes argument for unique

In an N-dimensional array, the user can now choose the axis along which to look
for duplicate N-1-dimensional elements using numpy.unique. The original
behaviour is recovered if axis=None (default).

np.gradient now supports unevenly spaced data

Users can now specify a not-constant spacing for data.
In particular np.gradient can now take:

  1. A single scalar to specify a sample distance for all dimensions.
  2. N scalars to specify a constant sample distance for each dimension.
    i.e. dx, dy, dz, ...
  3. N arrays to specify the coordinates of the values along each dimension of F.
    The length of the array must match the size of the corresponding dimension
  4. Any combination of N scalars/arrays with the meaning of 2. and 3.

This means that, e.g., it is now possible to do the following::

>>> f = np.array([[1, 2, 6], [3, 4, 5]], dtype=np.float)
>>> dx = 2.
>>> y = [1., 1.5, 3.5]
>>> np.gradient(f, dx, y)
[array([[ 1. ,  1. , -0.5], [ 1. ,  1. , -0.5]]),
 array([[ 2. ,  2. ,  2. ], [ 2. ,  1.7,  0.5]])]

Support for returning arrays of arbitrary dimensions in apply_along_axis

Previously, only scalars or 1D arrays could be returned by the function passed
to apply_along_axis. Now, it can return an array of any dimensionality
(including 0D), and the shape of this array replaces the axis of the array
being iterated over.

.ndim property added to dtype to complement .shape

For consistency with ndarray and broadcast, d.ndim is a shorthand
for len(d.shape).

Support for tracemalloc in Python 3.6

NumPy now supports memory tracing with tracemalloc_ module of Python 3.6 or
newer. Memory allocations from NumPy are placed into the domain defined by
numpy.lib.tracemalloc_domain.
Note that NumPy allocation will not show up in tracemalloc_ of earlier Python
versions.

.. _tracemalloc: https://docs.python.org/3/library/tracemalloc.html

NumPy may be built with relaxed stride checking debugging

Setting NPY_RELAXED_STRIDES_DEBUG=1 in the environment when relaxed stride
checking is enabled will cause NumPy to be compiled with the affected strides
set to the maximum value of npy_intp in order to help detect invalid usage of
the strides in downstream projects. When enabled, invalid usage often results
in an error being raised, but the exact type of error depends on the details of
the code. TypeError and OverflowError have been observed in the wild.

It was previously the case that this option was disabled for releases and
enabled in master and changing between the two required editing the code. It is
now disabled by default but can be enabled for test builds.

Improvements

Ufunc behavior for overlapping inputs

Operations where ufunc input and output operands have memory overlap
produced undefined results in previous NumPy versions, due to data
dependency issues. In NumPy 1.13.0, results from such operations are
now defined to be the same as for equivalent operations where there is
no memory overlap.

Operations affected now make temporary copies, as needed to eliminate
data dependency. As detecting these cases is computationally
expensive, a heuristic is used, which may in rare cases result to
needless temporary copies. For operations where the data dependency
is simple enough for the heuristic to analyze, temporary copies will
not be made even if the arrays overlap, if it can be deduced copies
are not necessary. As an example,np.add(a, b, out=a) will not
involve copies.

To illustrate a previously undefined operation::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[1:])

In NumPy 1.13.0 the last line is guaranteed to be equivalent to::

>>> np.add(x[1:].copy(), x[:-1].copy(), out=x[1:])

A similar operation with simple non-problematic data dependence is::

>>> x = np.arange(16).astype(float)
>>> np.add(x[1:], x[:-1], out=x[:-1])

It will continue to produce the same results as in previous NumPy
versions, and will not involve unnecessary temporary copies.

The change applies also to in-place binary operations, for example::

>>> x = np.random.rand(500, 500)
>>> x += x.T

This statement is now guaranteed to be equivalent to x[...] = x + x.T,
whereas in previous NumPy versions the results were undefined.

Partial support for 64-bit f2py extensions with MinGW

Extensions that incorporate Fortran libraries can now be built using the free
MinGW_ toolset, also under Python 3.5. This works best for extensions that only
do calculations and uses the runtime modestly (reading and writing from files,
for instance). Note that this does not remove the need for Mingwpy; if you make
extensive use of the runtime, you will most likely run into issues_. Instead,
it should be regarded as a band-aid until Mingwpy is fully functional.

Extensions can also be compiled using the MinGW toolset using the runtime
library from the (moveable) WinPython 3.4 distribution, which can be useful for
programs with a PySide1/Qt4 front-end.

.. _MinGW: https://sf.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/6.2.0/threads-win32/seh/

.. _issues: https://mingwpy.github.io/issues.html

Performance improvements for packbits and unpackbits

The functions numpy.packbits with boolean input and numpy.unpackbits have
been optimized to be a significantly faster for contiguous data.

Fix for PPC long double floating point information

In previous versions of NumPy, the finfo function returned invalid
information about the double double_ format of the longdouble float type
on Power PC (PPC). The invalid values resulted from the failure of the NumPy
algorithm to deal with the variable number of digits in the significand
that are a feature of PPC long doubles. This release by-passes the failing
algorithm by using heuristics to detect the presence of the PPC double double
format. A side-effect of using these heuristics is that the finfo
function is faster than previous releases.

.. _PPC long doubles: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.genprogc/128bit_long_double_floating-point_datatype.htm

.. _double double: https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format#Double-double_arithmetic

Better default repr for ndarray subclasses

Subclasses of ndarray with no repr specialization now correctly indent
their data and type lines.

More reliable comparisons of masked arrays

Comparisons of masked arrays were buggy for masked scalars and failed for
structured arrays with dimension higher than one. Both problems are now
solved. In the process, it was ensured that in getting the result for a
structured array, masked fields are properly ignored, i.e., the result is equal
if all fields that are non-masked in both are equal, thus making the behaviour
identical to what one gets by comparing an unstructured masked array and then
doing .all() over some axis.

np.matrix with booleans elements can now be created using the string syntax

np.matrix failed whenever one attempts to use it with booleans, e.g.,
np.matrix('True'). Now, this works as expected.

More linalg operations now accept empty vectors and matrices

All of the following functions in np.linalg now work when given input
arrays with a 0 in the last two dimensions: det, slogdet, pinv,
eigvals, eigvalsh, eig, eigh.

Bundled version of LAPACK is now 3.2.2

NumPy comes bundled with a minimal implementation of lapack for systems without
a lapack library installed, under the name of lapack_lite. This has been
upgraded from LAPACK 3.0.0 (June 30, 1999) to LAPACK 3.2.2 (June 30, 2010). See
the LAPACK changelogs_ for details on the all the changes this entails.

While no new features are exposed through numpy, this fixes some bugs
regarding "workspace" sizes, and in some places may use faster algorithms.

.. _LAPACK changelogs: http://www.netlib.org/lapack/release_notes.html#_4_history_of_lapack_releases

reduce of np.hypot.reduce and np.logical_xor allowed in more cases

This now works on empty arrays, returning 0, and can reduce over multiple axes.
Previously, a ValueError was thrown in these cases.

Better repr of object arrays

Object arrays that contain themselves no longer cause a recursion error.

Object arrays that contain list objects are now printed in a way that makes
clear the difference between a 2d object array, and a 1d object array of lists.

Changes

argsort on masked arrays takes the same default arguments as sort

By default, argsort now places the masked values at the end of the sorted
array, in the same way that sort already did. Additionally, the
end_with argument is added to argsort, for consistency with sort.
Note that this argument is not added at the end, so breaks any code that
passed fill_value as a positional argument.

average now preserves subclasses

For ndarray subclasses, numpy.average will now return an instance of the
subclass, matching the behavior of most other NumPy functions such as mean.
As a consequence, also calls that returned a scalar may now return a subclass
array scalar.

array == None and array != None do element-wise comparison

Previously these operations returned scalars False and True respectively.

np.equal, np.not_equal for object arrays ignores object identity

Previously, these functions always treated identical objects as equal. This had
the effect of overriding comparison failures, comparison of objects that did
not return booleans, such as np.arrays, and comparison of objects where the
results differed from object identity, such as NaNs.

Boolean indexing changes

  • Boolean array-likes (such as lists of python bools) are always treated as
    boolean indexes.

  • Boolean scalars (including python True) are legal boolean indexes and
    never treated as integers.

  • Boolean indexes must match the dimension of the axis that they index.

  • Boolean indexes used on the lhs of an assignment must match the dimensions of
    the rhs.

  • Boolean indexing into scalar arrays return a new 1-d array. This means that
    array(1)[array(True)] gives array([1]) and not the original array.

np.random.multivariate_normal behavior with bad covariance matrix

It is now possible to adjust the behavior the function will have when dealing
with the covariance matrix by using two new keyword arguments:

  • tol can be used to specify a tolerance to use when checking that
    the covariance matrix is positive semidefinite.

  • check_valid can be used to configure what the function will do in the
    presence of a matrix that is not positive semidefinite. Valid options are
    ignore, warn and raise. The default value, warn keeps the
    the behavior used on previous releases.

assert_array_less compares np.inf and -np.inf now

Previously, np.testing.assert_array_less ignored all infinite values. This
is not the expected behavior both according to documentation and intuitively.
Now, -inf < x < inf is considered True for any real number x and all
other cases fail.

assert_array_ and masked arrays assert_equal hide less warnings

Some warnings that were previously hidden by the assert_array_
functions are not hidden anymore. In most cases the warnings should be
correct and, should they occur, will require changes to the tests using
these functions.
For the masked array assert_equal version, warnings may occur when
comparing NaT. The function presently does not handle NaT or NaN
specifically and it may be best to avoid it at this time should a warning
show up due to this change.

offset attribute value in memmap objects

The offset attribute in a memmap object is now set to the
offset into the file. This is a behaviour change only for offsets
greater than mmap.ALLOCATIONGRANULARITY.

np.real and np.imag return scalars for scalar inputs

Previously, np.real and np.imag used to return array objects when
provided a scalar input, which was inconsistent with other functions like
np.angle and np.conj.

The polynomial convenience classes cannot be passed to ufuncs

The ABCPolyBase class, from which the convenience classes are derived, sets
__array_ufun__ = None in order of opt out of ufuncs. If a polynomial
convenience class instance is passed as an argument to a ufunc, a TypeError
will now be raised.

Checksums

MD5

bfbb00f0086e3158f773fc7882464056  numpy-1.13.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
7452330526c3c91b582d9287082aa0c9  numpy-1.13.0rc1-cp27-cp27m-manylinux1_i686.whl
77ff258f36e73636b42d5f5ef4d4b10d  numpy-1.13.0rc1-cp27-cp27m-manylinux1_x86_64.whl
24a89cdcb5a41f5da46440f2898835f2  numpy-1.13.0rc1-cp27-cp27mu-manylinux1_i686.whl
2c3542547986142714bd4602833d5e6f  numpy-1.13.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
8407cd381bbfccbf897c2c792d767642  numpy-1.13.0rc1-cp27-none-win32.whl
5c8f9dc09f6310059885e8bc5ed150a3  numpy-1.13.0rc1-cp27-none-win_amd64.whl
65a6b52ce96abe3de651157044aac606  numpy-1.13.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
964cfe8fa5a4c4f8231d786f4aa17909  numpy-1.13.0rc1-cp34-cp34m-manylinux1_i686.whl
2ce21d136e209bb163d56384bb078356  numpy-1.13.0rc1-cp34-cp34m-manylinux1_x86_64.whl
0852423851745880bcbedfd813180a4b  numpy-1.13.0rc1-cp34-none-win32.whl
142b316c5ae0686477e9bad554dbd1f7  numpy-1.13.0rc1-cp34-none-win_amd64.whl
009e7dd7cb8234fe7075e5d13c0080a4  numpy-1.13.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
48c144101eaa627ce2af797c9a267dc9  numpy-1.13.0rc1-cp35-cp35m-manylinux1_i686.whl
67abccece3e077e33c733e96e08f0442  numpy-1.13.0rc1-cp35-cp35m-manylinux1_x86_64.whl
3e38f4358dec0301bd553338ef07ead0  numpy-1.13.0rc1-cp35-none-win32.whl
7575ae9c9766ae3a8587578f73ed40b8  numpy-1.13.0rc1-cp35-none-win_amd64.whl
819cb22d8b960de9b6f1b5d5d6efdd82  numpy-1.13.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
2d948fea197d2bae7875f421a95bcae5  numpy-1.13.0rc1-cp36-cp36m-manylinux1_i686.whl
95d242748fce338be7c7f9c40d7ccc8c  numpy-1.13.0rc1-cp36-cp36m-manylinux1_x86_64.whl
353264a2da663d0a711f1f2eea6f503e  numpy-1.13.0rc1-cp36-none-win32.whl
e10c85248f1d7ed2c111c3599e73fd1c  numpy-1.13.0rc1-cp36-none-win_amd64.whl
7db944e5749c1cddd7ad8284bc18508c  numpy-1.13.0rc1.tar.gz
d2ebf9601886405881949ca7a1b56f45  numpy-1.13.0rc1.zip

SHA256

7fee7d5a7fa750c5bc8068ae5a090fa69c0415b37cd4e7241519f8bc147bf244  numpy-1.13.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
4c334f6308b9325b9c0c43c08e64796af7e7c90f7c713e27c30f6721d73e60f4  numpy-1.13.0rc1-cp27-cp27m-manylinux1_i686.whl
020eee5dfe06041f751f1d73fb459b6522fd87486ba2ab26d0e54c1f5ce0a507  numpy-1.13.0rc1-cp27-cp27m-manylinux1_x86_64.whl
15e99e0101ac323daced8e976654c1b7c9f04421a9b748a4b382eb4a226cbed4  numpy-1.13.0rc1-cp27-cp27mu-manylinux1_i686.whl
389b53a7479606affaff1fd01f956b4b74327317a4975a7ae36749cf02134f1d  numpy-1.13.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
919421bc3c3ad96c148d9181ac3325c52dc3ac8f0b7dc48d37c271276a003dce  numpy-1.13.0rc1-cp27-none-win32.whl
07156d7c00bee1695e59c1f6153c7947e9e92c481400a4f40e1484335d57dd03  numpy-1.13.0rc1-cp27-none-win_amd64.whl
8e33417a46714e900882d676be392b7b7dc3ca3b92a48865390bfb7e628bb4b0  numpy-1.13.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
5ce9251c5d2609c9a63f3f05ae7e91329601e086973dcfa9b6eb154eebca6e7c  numpy-1.13.0rc1-cp34-cp34m-manylinux1_i686.whl
0e3c5174bdb2d6fc41d1176aef8555c4bbe60d22438b16653406161fd112ffd1  numpy-1.13.0rc1-cp34-cp34m-manylinux1_x86_64.whl
1ba3b6a042be496c6eefd15b69ee96dca6d33b911cd765a5b3d902dcdf4e45cc  numpy-1.13.0rc1-cp34-none-win32.whl
4d30a5dafa84f99caacd5cecc74c2c5a06b5f3e2acee8b2d2bcd474d8108d8fa  numpy-1.13.0rc1-cp34-none-win_amd64.whl
ef790c150362250bd80cf0d160cb02f4fb3619582fb6cccff266a573db67685d  numpy-1.13.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
e3a3451f5817da92ec38e4398b3d8f9bad6645d0e2177747588bed3c9d173a00  numpy-1.13.0rc1-cp35-cp35m-manylinux1_i686.whl
761a3039d847f054332f647951495a16e536c02cd1535bd0367eea77e20492eb  numpy-1.13.0rc1-cp35-cp35m-manylinux1_x86_64.whl
b2d1bce62d8fd1f63a424045a62738bf33da6aa3e760bba3833269a96d5f4bb2  numpy-1.13.0rc1-cp35-none-win32.whl
a4f72e45157d40812bc9a227ca5e4f6e975bd60054bec223412ab4b20d5eb8f3  numpy-1.13.0rc1-cp35-none-win_amd64.whl
3bf0b98106daa3944d0e27e7a03e6e73b14a168869f99ca2ecd8785816b3b93f  numpy-1.13.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
4274884c426ab88bb5274278401195d6ae563551ba18997f0662378bbbca492c  numpy-1.13.0rc1-cp36-cp36m-manylinux1_i686.whl
0bc608f75d9749bcdef7d43042aae1a867c499954d9d27f91a8562e04bd3bf51  numpy-1.13.0rc1-cp36-cp36m-manylinux1_x86_64.whl
88399fb6c934ff96da351be5a2e81719fdca92dfd9f81837298efda31968a6e4  numpy-1.13.0rc1-cp36-none-win32.whl
8e8e1ccf025c8b6a821f75086a364a68d9e1877519a35bf8facec9e5120836f4  numpy-1.13.0rc1-cp36-none-win_amd64.whl
794a8d45d88197ba7ca740141dd87e440d4dde308aaff08b52936ed3c7df78d5  numpy-1.13.0rc1.tar.gz
fbe37933d584d62d76197a9be531ef17f8ba23462f50f633ba69c16c3f203e43  numpy-1.13.0rc1.zip
numpy -

Published by charris over 7 years ago

==========================
NumPy 1.12.1 Release Notes

NumPy 1.12.1 supports Python 2.7 and 3.4 - 3.6 and fixes bugs and regressions
found in NumPy 1.12.0. In particular, the regression in f2py constant parsing
is fixed. Wheels for Linux, Windows, and OSX can be found on pypi,

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
  • Greg Young
  • Joerg Behrmann +
  • John Kirkham
  • Julian Taylor
  • Marten van Kerkwijk
  • Matthew Brett
  • Shota Kawabuchi
  • Jean Utke +

Fixes Backported

  • #8483: BUG: Fix wrong future nat warning and equiv type logic error...
  • #8489: BUG: Fix wrong masked median for some special cases
  • #8490: DOC: Place np.average in inline code
  • #8491: TST: Work around isfinite inconsistency on i386
  • #8494: BUG: Guard against replacing constants without '_' spec in f2py.
  • #8524: BUG: Fix mean for float 16 non-array inputs for 1.12
  • #8571: BUG: Fix calling python api with error set and minor leaks for...
  • #8602: BUG: Make iscomplexobj compatible with custom dtypes again
  • #8618: BUG: Fix undefined behaviour induced by bad __array_wrap__
  • #8648: BUG: Fix MaskedArray.__setitem__
  • #8659: BUG: PPC64el machines are POWER for Fortran in f2py
  • #8665: BUG: Look up methods on MaskedArray in _frommethod
  • #8674: BUG: Remove extra digit in binary_repr at limit
  • #8704: BUG: Fix deepcopy regression for empty arrays.
  • #8707: BUG: Fix ma.median for empty ndarrays

Checksums

MD5

ca6c4a370f76bb461f7c3e254c45db02  numpy-1.12.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
71c887adb4cf6a374ff4a83115c8860b  numpy-1.12.1-cp27-cp27m-manylinux1_i686.whl
614755c8ee8408b83bd1ba837b6034b2  numpy-1.12.1-cp27-cp27m-manylinux1_x86_64.whl
3ec80a7e027146d4fad10f85426af256  numpy-1.12.1-cp27-cp27mu-manylinux1_i686.whl
471f740f61f7fba1a1a1e526bf710c49  numpy-1.12.1-cp27-cp27mu-manylinux1_x86_64.whl
906d8d8e1cb6a5056e0405d5b54d6440  numpy-1.12.1-cp27-none-win32.whl
7cd640cdcb6b80fa501d377bf883ec61  numpy-1.12.1-cp27-none-win_amd64.whl
2d89d21806408befdc20b5c9e8bfd354  numpy-1.12.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
e5e9c27564bd41d88df001c2cc0ace7b  numpy-1.12.1-cp34-cp34m-manylinux1_i686.whl
6288d4e9cfea859e03dc82879539d029  numpy-1.12.1-cp34-cp34m-manylinux1_x86_64.whl
7e08d4f57dc51c7916042670753c0462  numpy-1.12.1-cp34-none-win32.whl
cac2b18bde8a76537762e8acfb25c89d  numpy-1.12.1-cp34-none-win_amd64.whl
ebd51c3549ee44a57af0f35a9f5b2b02  numpy-1.12.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
5bb0426593f74b922f1e549cde412f4b  numpy-1.12.1-cp35-cp35m-manylinux1_i686.whl
c372561ab420e6e18eb8f2e7da24f1fd  numpy-1.12.1-cp35-cp35m-manylinux1_x86_64.whl
9d2d3a0d9af306c51255ced96244213f  numpy-1.12.1-cp35-none-win32.whl
4b32dcd1c59804f53cb9473d99673ea5  numpy-1.12.1-cp35-none-win_amd64.whl
a1d17430e3688e962feac3ec0d2f12c2  numpy-1.12.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
c1f1c64b9d421c8715e476ae8a9d274e  numpy-1.12.1-cp36-cp36m-manylinux1_i686.whl
fbebdc68b7698e00c07bf4ddae0fb717  numpy-1.12.1-cp36-cp36m-manylinux1_x86_64.whl
3e3110a79b3ce9feb8af31aaf3b47003  numpy-1.12.1-cp36-none-win32.whl
0c753fec7a10e3778215eb9f7c6f43f4  numpy-1.12.1-cp36-none-win_amd64.whl
2abe6efb8ea0ac1716d1fc5fa90cbacf  numpy-1.12.1.tar.gz
c75b072a984028ac746a6a332c209a91  numpy-1.12.1.zip

SHA256

3b21dc40fa1e2450dee8cf54991b0f95c415ac508d5db1227338efcf03c162cd  numpy-1.12.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
405ce136edb18c6f1f8c5acc75d7d8fbb875cc8b5015562251b93435099233d3  numpy-1.12.1-cp27-cp27m-manylinux1_i686.whl
ca917155b35b3bcc68ef1ad82570a29414f5088495ea8f68c65b071c50e64340  numpy-1.12.1-cp27-cp27m-manylinux1_x86_64.whl
7e9015bc5de54c8bd73ca750ccedfda25d34a25a767caf802740d35a692ec3ab  numpy-1.12.1-cp27-cp27mu-manylinux1_i686.whl
cd7892f7d644d1b4ed2ead254d4851616c07ecf82618e3203e2a81747ffb6069  numpy-1.12.1-cp27-cp27mu-manylinux1_x86_64.whl
56e68de63ae738f40669b6a5f0601f9453940a0470a1e9bea16448e5b53f5f28  numpy-1.12.1-cp27-none-win32.whl
95e52d1077abeead6d205c1fc644f075228813859bb625960c1ae1248c4189ba  numpy-1.12.1-cp27-none-win_amd64.whl
bcbce5ef18dc826ef67756a0d3669baca815c8d44b26867c6865f714a23d9262  numpy-1.12.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
d8dbd7e35e4819e059a044c7545d5602937d6b666dbd9b6eb8ff40037ab0980c  numpy-1.12.1-cp34-cp34m-manylinux1_i686.whl
4eac5f2f624c5e7eecbdb51395ff39a099c48cab607a158f16f288c6fe39a2b3  numpy-1.12.1-cp34-cp34m-manylinux1_x86_64.whl
9cd16915a815c2f04633d14e7640083c1b72e82b325439c91370adfd376c9975  numpy-1.12.1-cp34-none-win32.whl
4c64d9c389827f310c7f4e7887b741c34c6b2c337ff63a12f66ef0197fdf5366  numpy-1.12.1-cp34-none-win_amd64.whl
9ce673bb7b6240b94b60b52186f5c0825f4b31e8191c8bc7412a7d0348fca2cd  numpy-1.12.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
130105bfc0b03245115da67b441c48597bf1ed7f5385f8388ce4f75cdf2f91d2  numpy-1.12.1-cp35-cp35m-manylinux1_i686.whl
92dce120e385767cbe433719b5e3fdb1ac81907140d3984b3187208f79aff19f  numpy-1.12.1-cp35-cp35m-manylinux1_x86_64.whl
e97cecd783e8e7e70d18a42f6df7f18be14cbcc82fb9b837b03d072d1401ae53  numpy-1.12.1-cp35-none-win32.whl
818d5a1d5752d09929ce1ba1735366d5acc769a1839386dc91f3ac30cf9faf19  numpy-1.12.1-cp35-none-win_amd64.whl
43ccfed0092def52b924e004780517c762f8fce3ececbd3f8e2580ac0538bb5e  numpy-1.12.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
5cb6341fc885b101978328d3c8d51a069a97a00699a30891106ef7dda56a0d30  numpy-1.12.1-cp36-cp36m-manylinux1_i686.whl
5dd60892710df0ef654bbf4d1e3cb53ac79845e55a96e4a26dd47218e06d819a  numpy-1.12.1-cp36-cp36m-manylinux1_x86_64.whl
727d6373355b00b96d9320254a676b878d6cd43ae409186bec27eec3e5e4e6e7  numpy-1.12.1-cp36-none-win32.whl
47b4c4da2fe0618b65fd70987a414fdc24c09e1ffdff77f7147a3c6627b07596  numpy-1.12.1-cp36-none-win_amd64.whl
d56d7fff81e844a407afa0503080c814e5d87678e338a73b8d8f98137713cfa9  numpy-1.12.1.tar.gz
a65266a4ad6ec8936a1bc85ce51f8600634a31a258b722c9274a80ff189d9542  numpy-1.12.1.zip
numpy -

Published by charris over 7 years ago

==========================
NumPy 1.12.1 Release Notes

NumPy 1.12.1 supports Python 2.7 and 3.4 - 3.6 and fixes bugs and regressions
found in NumPy 1.12.0. In particular, the regression in f2py constant parsing
is fixed. Wheels for Linux, Windows, and OSX can be found on pypi,

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
  • Greg Young
  • Joerg Behrmann +
  • John Kirkham
  • Julian Taylor
  • Marten van Kerkwijk
  • Matthew Brett
  • Shota Kawabuchi
  • Jean Utke +

Fixes Backported

  • #8483: BUG: Fix wrong future nat warning and equiv type logic error...
  • #8489: BUG: Fix wrong masked median for some special cases
  • #8490: DOC: Place np.average in inline code
  • #8491: TST: Work around isfinite inconsistency on i386
  • #8494: BUG: Guard against replacing constants without '_' spec in f2py.
  • #8524: BUG: Fix mean for float 16 non-array inputs for 1.12
  • #8571: BUG: Fix calling python api with error set and minor leaks for...
  • #8602: BUG: Make iscomplexobj compatible with custom dtypes again
  • #8618: BUG: Fix undefined behaviour induced by bad __array_wrap__
  • #8648: BUG: Fix MaskedArray.__setitem__
  • #8659: BUG: PPC64el machines are POWER for Fortran in f2py
  • #8665: BUG: Look up methods on MaskedArray in _frommethod
  • #8674: BUG: Remove extra digit in binary_repr at limit
  • #8704: BUG: Fix deepcopy regression for empty arrays.
  • #8707: BUG: Fix ma.median for empty ndarrays

Checksums

MD5

6f9da159637b542d847d43e56b3c04e1  numpy-1.12.1rc1-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
2008f7244c850700d57e55316b9a74a3  numpy-1.12.1rc1-cp27-cp27m-manylinux1_i686.whl
d2d1a41a75e6fe7ffb8a648bf4f37306  numpy-1.12.1rc1-cp27-cp27m-manylinux1_x86_64.whl
68965b257291ae47c14aa2308aa873c6  numpy-1.12.1rc1-cp27-cp27mu-manylinux1_i686.whl
c9a592fc298ef7d6a788c2936e56e941  numpy-1.12.1rc1-cp27-cp27mu-manylinux1_x86_64.whl
9f788341df108abaf5a73642fb227a3a  numpy-1.12.1rc1-cp27-none-win32.whl
470850b934b3e1bbffb983007e4002a9  numpy-1.12.1rc1-cp27-none-win_amd64.whl
a1ca4a95536fa7aa552de94721b4e212  numpy-1.12.1rc1-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
ae62f3a079daf3e480c9b82d2baf9250  numpy-1.12.1rc1-cp34-cp34m-manylinux1_i686.whl
fc6dfaec9735cfd61ad5271c2f8f7c4d  numpy-1.12.1rc1-cp34-cp34m-manylinux1_x86_64.whl
6a2c6058ae104df1298d57695f5e4a01  numpy-1.12.1rc1-cp34-none-win32.whl
67cc902f361323bba7f60cf236d72fc7  numpy-1.12.1rc1-cp34-none-win_amd64.whl
4bcb3d5b7946e828402c4d0922493e2c  numpy-1.12.1rc1-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
48961a54ae03fb68f1269d66d7ba006a  numpy-1.12.1rc1-cp35-cp35m-manylinux1_i686.whl
cf11aa3abfed14578986b6cbdbfd09c3  numpy-1.12.1rc1-cp35-cp35m-manylinux1_x86_64.whl
ea49287c2e2fcecd34b9ef68f6519380  numpy-1.12.1rc1-cp35-none-win32.whl
cfc541c007f2dc5694f2ab530cefff25  numpy-1.12.1rc1-cp35-none-win_amd64.whl
24f835878000b1bbf54045eda1cf32ec  numpy-1.12.1rc1-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
d1825676d2590a828c1589bc89a05ddc  numpy-1.12.1rc1-cp36-cp36m-manylinux1_i686.whl
296335a1576f38d6b0c59b493a0d7ba8  numpy-1.12.1rc1-cp36-cp36m-manylinux1_x86_64.whl
782ee95bc89bcc1966034c84c8b217b4  numpy-1.12.1rc1-cp36-none-win32.whl
c140f50a4a560dd18b2dbde287925964  numpy-1.12.1rc1-cp36-none-win_amd64.whl
23e08c029b3d44fe92da20fc2566bf7f  numpy-1.12.1rc1.tar.gz
091bc6601fe74d0e5a00c22c3d97d9bc  numpy-1.12.1rc1.zip

SHA256

f99955e69570d37fd457127b995506e4148ac5c4b523e31a61bf2295398532d8  numpy-1.12.1rc1-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
03f6a31c62db7b5f4eb31be4d74b3ebad507da8cbe574ec6378680548681446b  numpy-1.12.1rc1-cp27-cp27m-manylinux1_i686.whl
aa260f0290992d13c51121282de6e25cbc9b78344c99265193aae7f62b330bd8  numpy-1.12.1rc1-cp27-cp27m-manylinux1_x86_64.whl
3952e8e3b6cdf99d172c9f2399ecf49d0b0c3ca43ff30c067a53c80b1ae3feeb  numpy-1.12.1rc1-cp27-cp27mu-manylinux1_i686.whl
866ab7c8ecd14458efb486f1866f1551430ca04a04b0d7c5e79c8b20bb0bea84  numpy-1.12.1rc1-cp27-cp27mu-manylinux1_x86_64.whl
85612e2923ecf3a14e99bd44f46ab73a7bbb2374d3ff279c84de8336849ed49e  numpy-1.12.1rc1-cp27-none-win32.whl
e7637f111588f46b3b2962835baa06699893fb67867f55c58f6169fd5158a504  numpy-1.12.1rc1-cp27-none-win_amd64.whl
990848d22127cd30bd13609e7a6f2a593069d8219d24e5d40cc9c4f8e8d96f36  numpy-1.12.1rc1-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
0da5dd9fa119d2e18d0a868cf79ae8a8ac09f20a5825d2dddc0d76b2aff2d47a  numpy-1.12.1rc1-cp34-cp34m-manylinux1_i686.whl
7975dd70ef1527d4a2059650e4802a3f2087edd62f22a3e10fcc636e53914d85  numpy-1.12.1rc1-cp34-cp34m-manylinux1_x86_64.whl
4844b346d033eb4e6aaeffce368b23fc7a63fe25a4dba989f96519ffa63334e2  numpy-1.12.1rc1-cp34-none-win32.whl
a9021bccaea36190ef87a6de024c10f46198a172e8805c97f0841a3f50ad8f27  numpy-1.12.1rc1-cp34-none-win_amd64.whl
818e70d06a9d7ad24d9e20277e739203665bbbc00309f942f737ae97c727c5cb  numpy-1.12.1rc1-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
e29f6b34aa1ba296a2e3ee50e53ee50773a2cf63b8e74670b41c86276c5845a1  numpy-1.12.1rc1-cp35-cp35m-manylinux1_i686.whl
263d83c480732753162110cc7d29b7dbbd6039042ba789a01feb6ddf82845171  numpy-1.12.1rc1-cp35-cp35m-manylinux1_x86_64.whl
a439c27f9e726d4e2da38a3caaa5bcafd6460a74f614f3c66c461935774fccae  numpy-1.12.1rc1-cp35-none-win32.whl
9cea6070ff563a03236bbda56424093e1b6bfec7a0e719fcbb06370e166366f1  numpy-1.12.1rc1-cp35-none-win_amd64.whl
9b746a5a767025e520476fb3ffe923cc565953fa0006cc5ce83daa5ac4fa8eb6  numpy-1.12.1rc1-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
f89fb559c21b51f28f56eca900011adef1ed2478d340641b78d81b00ab048ae0  numpy-1.12.1rc1-cp36-cp36m-manylinux1_i686.whl
14754935eba11505c2b92e02f334460c55414c107c6f45ec0ef45b072c2759c8  numpy-1.12.1rc1-cp36-cp36m-manylinux1_x86_64.whl
73a6407e6a46bf022bcd0c810865367623e28ce374dfd34cb777a220a0ca9149  numpy-1.12.1rc1-cp36-none-win32.whl
ace43661d923540bec2e98590d4d108168beebec32c51bf6e84d13b5367f1136  numpy-1.12.1rc1-cp36-none-win_amd64.whl
63bfae3adb227f38d4ce13aa55dad0eaf50e997394849021b1bf070707a6ab88  numpy-1.12.1rc1.tar.gz
eeaffa7be017c7f3bc8f88b6c7d7f5b3388c18a792b4f87a447a988fde883d30  numpy-1.12.1rc1.zip
numpy -

Published by charris almost 8 years ago

NumPy 1.12.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

The NumPy 1.12.0 release contains a large number of fixes and improvements, but
few that stand out above all others. That makes picking out the highlights
somewhat arbitrary but the following may be of particular interest or indicate
areas likely to have future consequences.

  • Order of operations in np.einsum can now be optimized for large speed improvements.
  • New signature argument to np.vectorize for vectorizing with core dimensions.
  • The keepdims argument was added to many functions.
  • New context manager for testing warnings
  • Support for BLIS in numpy.distutils
  • Much improved support for PyPy (not yet finished)

Dropped Support

  • Support for Python 2.6, 3.2, and 3.3 has been dropped.

Added Support

  • Support for PyPy 2.7 v5.6.0 has been added. While not complete (nditer
    updateifcopy is not supported yet), this is a milestone for PyPy's
    C-API compatibility layer.

Build System Changes

  • Library order is preserved, instead of being reordered to match that of
    the directories.

Deprecations

Assignment of ndarray object's data attribute

Assigning the 'data' attribute is an inherently unsafe operation as pointed
out in gh-7083. Such a capability will be removed in the future.

Unsafe int casting of the num attribute in linspace

np.linspace now raises DeprecationWarning when num cannot be safely
interpreted as an integer.

Insufficient bit width parameter to binary_repr

If a 'width' parameter is passed into binary_repr that is insufficient to
represent the number in base 2 (positive) or 2's complement (negative) form,
the function used to silently ignore the parameter and return a representation
using the minimal number of bits needed for the form in question. Such behavior
is now considered unsafe from a user perspective and will raise an error in the
future.

Future Changes

  • In 1.13 NAT will always compare False except for NAT != NAT,
    which will be True. In short, NAT will behave like NaN
  • In 1.13 np.average will preserve subclasses, to match the behavior of most
    other numpy functions such as np.mean. In particular, this means calls which
    returned a scalar may return a 0-d subclass object instead.

Multiple-field manipulation of structured arrays

In 1.13 the behavior of structured arrays involving multiple fields will change
in two ways:

First, indexing a structured array with multiple fields (eg,
arr[['f1', 'f3']]) will return a view into the original array in 1.13,
instead of a copy. Note the returned view will have extra padding bytes
corresponding to intervening fields in the original array, unlike the copy in
1.12, which will affect code such as arr[['f1', 'f3']].view(newdtype).

Second, for numpy versions 1.6 to 1.12 assignment between structured arrays
occurs "by field name": Fields in the destination array are set to the
identically-named field in the source array or to 0 if the source does not have
a field::

>>> a = np.array([(1,2),(3,4)], dtype=[('x', 'i4'), ('y', 'i4')])
>>> b = np.ones(2, dtype=[('z', 'i4'), ('y', 'i4'), ('x', 'i4')])
>>> b[:] = a
>>> b
array([(0, 2, 1), (0, 4, 3)],
      dtype=[('z', '<i4'), ('y', '<i4'), ('x', '<i4')])

In 1.13 assignment will instead occur "by position": The Nth field of the
destination will be set to the Nth field of the source regardless of field
name. The old behavior can be obtained by using indexing to reorder the fields
before
assignment, e.g., b[['x', 'y']] = a[['y', 'x']].

Compatibility notes

DeprecationWarning to error

  • Indexing with floats raises IndexError,
    e.g., a[0, 0.0].
  • Indexing with non-integer array_like raises IndexError,
    e.g., a['1', '2']
  • Indexing with multiple ellipsis raises IndexError,
    e.g., a[..., ...].
  • Non-integers used as index values raise TypeError,
    e.g., in reshape, take, and specifying reduce axis.

FutureWarning to changed behavior

  • np.full now returns an array of the fill-value's dtype if no dtype is
    given, instead of defaulting to float.
  • np.average will emit a warning if the argument is a subclass of ndarray,
    as the subclass will be preserved starting in 1.13. (see Future Changes)

power and ** raise errors for integer to negative integer powers

The previous behavior depended on whether numpy scalar integers or numpy
integer arrays were involved.

For arrays

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers returned zero when raised to negative integer powers.

For scalars

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers sometimes returned zero, sometimes the
    correct float depending on the integer type combination.

All of these cases now raise a ValueError except for those integer
combinations whose common type is float, for instance uint64 and int8. It was
felt that a simple rule was the best way to go rather than have special
exceptions for the integer units. If you need negative powers, use an inexact
type.

Relaxed stride checking is the default

This will have some impact on code that assumed that F_CONTIGUOUS and
C_CONTIGUOUS were mutually exclusive and could be set to determine the
default order for arrays that are now both.

The np.percentile 'midpoint' interpolation method fixed for exact indices

The 'midpoint' interpolator now gives the same result as 'lower' and 'higher' when
the two coincide. Previous behavior of 'lower' + 0.5 is fixed.

keepdims kwarg is passed through to user-class methods

numpy functions that take a keepdims kwarg now pass the value
through to the corresponding methods on ndarray sub-classes. Previously the
keepdims keyword would be silently dropped. These functions now have
the following behavior:

  1. If user does not provide keepdims, no keyword is passed to the underlying
    method.
  2. Any user-provided value of keepdims is passed through as a keyword
    argument to the method.

This will raise in the case where the method does not support a
keepdims kwarg and the user explicitly passes in keepdims.

The following functions are changed: sum, product,
sometrue, alltrue, any, all, amax, amin,
prod, mean, std, var, nanmin, nanmax,
nansum, nanprod, nanmean, nanmedian, nanvar,
nanstd

bitwise_and identity changed

The previous identity was 1, it is now -1. See entry in Improvements_ for
more explanation.

ma.median warns and returns nan when unmasked invalid values are encountered

Similar to unmasked median the masked median ma.median now emits a Runtime
warning and returns NaN in slices where an unmasked NaN is present.

Greater consistancy in assert_almost_equal

The precision check for scalars has been changed to match that for arrays. It
is now::

abs(actual - desired) < 1.5 * 10**(-decimal)

Note that this is looser than previously documented, but agrees with the
previous implementation used in assert_array_almost_equal. Due to the
change in implementation some very delicate tests may fail that did not
fail before.

NoseTester behaviour of warnings during testing

When raise_warnings="develop" is given, all uncaught warnings will now
be considered a test failure. Previously only selected ones were raised.
Warnings which are not caught or raised (mostly when in release mode)
will be shown once during the test cycle similar to the default python
settings.

assert_warns and deprecated decorator more specific

The assert_warns function and context manager are now more specific
to the given warning category. This increased specificity leads to them
being handled according to the outer warning settings. This means that
no warning may be raised in cases where a wrong category warning is given
and ignored outside the context. Alternatively the increased specificity
may mean that warnings that were incorrectly ignored will now be shown
or raised. See also the new suppress_warnings context manager.
The same is true for the deprecated decorator.

C API

No changes.

New Features

Writeable keyword argument for as_strided

np.lib.stride_tricks.as_strided now has a writeable
keyword argument. It can be set to False when no write operation
to the returned array is expected to avoid accidental
unpredictable writes.

axes keyword argument for rot90

The axes keyword argument in rot90 determines the plane in which the
array is rotated. It defaults to axes=(0,1) as in the originial function.

Generalized flip

flipud and fliplr reverse the elements of an array along axis=0 and
axis=1 respectively. The newly added flip function reverses the elements of
an array along any given axis.

  • np.count_nonzero now has an axis parameter, allowing
    non-zero counts to be generated on more than just a flattened
    array object.

BLIS support in numpy.distutils

Building against the BLAS implementation provided by the BLIS library is now
supported. See the [blis] section in site.cfg.example (in the root of
the numpy repo or source distribution).

Hook in numpy/__init__.py to run distribution-specific checks

Binary distributions of numpy may need to run specific hardware checks or load
specific libraries during numpy initialization. For example, if we are
distributing numpy with a BLAS library that requires SSE2 instructions, we
would like to check the machine on which numpy is running does have SSE2 in
order to give an informative error.

Add a hook in numpy/__init__.py to import a numpy/_distributor_init.py
file that will remain empty (bar a docstring) in the standard numpy source,
but that can be overwritten by people making binary distributions of numpy.

New nanfunctions nancumsum and nancumprod added

Nan-functions nancumsum and nancumprod have been added to
compute cumsum and cumprod by ignoring nans.

np.interp can now interpolate complex values

np.lib.interp(x, xp, fp) now allows the interpolated array fp
to be complex and will interpolate at complex128 precision.

New polynomial evaluation function polyvalfromroots added

The new function polyvalfromroots evaluates a polynomial at given points
from the roots of the polynomial. This is useful for higher order polynomials,
where expansion into polynomial coefficients is inaccurate at machine
precision.

New array creation function geomspace added

The new function geomspace generates a geometric sequence. It is similar
to logspace, but with start and stop specified directly:
geomspace(start, stop) behaves the same as
logspace(log10(start), log10(stop)).

New context manager for testing warnings

A new context manager suppress_warnings has been added to the testing
utils. This context manager is designed to help reliably test warnings.
Specifically to reliably filter/ignore warnings. Ignoring warnings
by using an "ignore" filter in Python versions before 3.4.x can quickly
result in these (or similar) warnings not being tested reliably.

The context manager allows to filter (as well as record) warnings similar
to the catch_warnings context, but allows for easier specificity.
Also printing warnings that have not been filtered or nesting the
context manager will work as expected. Additionally, it is possible
to use the context manager as a decorator which can be useful when
multiple tests give need to hide the same warning.

New masked array functions ma.convolve and ma.correlate added

These functions wrapped the non-masked versions, but propagate through masked
values. There are two different propagation modes. The default causes masked
values to contaminate the result with masks, but the other mode only outputs
masks if there is no alternative.

New float_power ufunc

The new float_power ufunc is like the power function except all
computation is done in a minimum precision of float64. There was a long
discussion on the numpy mailing list of how to treat integers to negative
integer powers and a popular proposal was that the __pow__ operator should
always return results of at least float64 precision. The float_power
function implements that option. Note that it does not support object arrays.

np.loadtxt now supports a single integer as usecol argument

Instead of using usecol=(n,) to read the nth column of a file
it is now allowed to use usecol=n. Also the error message is
more user friendly when a non-integer is passed as a column index.

Improved automated bin estimators for histogram

Added 'doane' and 'sqrt' estimators to histogram via the bins
argument. Added support for range-restricted histograms with automated
bin estimation.

np.roll can now roll multiple axes at the same time

The shift and axis arguments to roll are now broadcast against each
other, and each specified axis is shifted accordingly.

The __complex__ method has been implemented for the ndarrays

Calling complex() on a size 1 array will now cast to a python
complex.

pathlib.Path objects now supported

The standard np.load, np.save, np.loadtxt, np.savez, and similar
functions can now take pathlib.Path objects as an argument instead of a
filename or open file object.

New bits attribute for np.finfo

This makes np.finfo consistent with np.iinfo which already has that
attribute.

New signature argument to np.vectorize

This argument allows for vectorizing user defined functions with core
dimensions, in the style of NumPy's
:ref:generalized universal functions<c-api.generalized-ufuncs>. This allows
for vectorizing a much broader class of functions. For example, an arbitrary
distance metric that combines two vectors to produce a scalar could be
vectorized with signature='(n),(n)->()'. See np.vectorize for full
details.

Emit py3kwarnings for division of integer arrays

To help people migrate their code bases from Python 2 to Python 3, the
python interpreter has a handy option -3, which issues warnings at runtime.
One of its warnings is for integer division::

$ python -3 -c "2/3"

-c:1: DeprecationWarning: classic int division

In Python 3, the new integer division semantics also apply to numpy arrays.
With this version, numpy will emit a similar warning::

$ python -3 -c "import numpy as np; np.array(2)/np.array(3)"

-c:1: DeprecationWarning: numpy: classic int division

numpy.sctypes now includes bytes on Python3 too

Previously, it included str (bytes) and unicode on Python2, but only str
(unicode) on Python3.

Improvements

bitwise_and identity changed

The previous identity was 1 with the result that all bits except the LSB were
masked out when the reduce method was used. The new identity is -1, which
should work properly on twos complement machines as all bits will be set to
one.

Generalized Ufuncs will now unlock the GIL

Generalized Ufuncs, including most of the linalg module, will now unlock
the Python global interpreter lock.

Caches in np.fft are now bounded in total size and item count

The caches in np.fft that speed up successive FFTs of the same length can no
longer grow without bounds. They have been replaced with LRU (least recently
used) caches that automatically evict no longer needed items if either the
memory size or item count limit has been reached.

Improved handling of zero-width string/unicode dtypes

Fixed several interfaces that explicitly disallowed arrays with zero-width
string dtypes (i.e. dtype('S0') or dtype('U0'), and fixed several
bugs where such dtypes were not handled properly. In particular, changed
ndarray.__new__ to not implicitly convert dtype('S0') to
dtype('S1') (and likewise for unicode) when creating new arrays.

Integer ufuncs vectorized with AVX2

If the cpu supports it at runtime the basic integer ufuncs now use AVX2
instructions. This feature is currently only available when compiled with GCC.

Order of operations optimization in np.einsum

np.einsum now supports the optimize argument which will optimize the
order of contraction. For example, np.einsum would complete the chain dot
example np.einsum(‘ij,jk,kl->il’, a, b, c) in a single pass which would
scale like N^4; however, when optimize=True np.einsum will create
an intermediate array to reduce this scaling to N^3 or effectively
np.dot(a, b).dot(c). Usage of intermediate tensors to reduce scaling has
been applied to the general einsum summation notation. See np.einsum_path
for more details.

quicksort has been changed to an introsort

The quicksort kind of np.sort and np.argsort is now an introsort which
is regular quicksort but changing to a heapsort when not enough progress is
made. This retains the good quicksort performance while changing the worst case
runtime from O(N^2) to O(N*log(N)).

ediff1d improved performance and subclass handling

The ediff1d function uses an array instead on a flat iterator for the
subtraction. When to_begin or to_end is not None, the subtraction is performed
in place to eliminate a copy operation. A side effect is that certain
subclasses are handled better, namely astropy.Quantity, since the complete
array is created, wrapped, and then begin and end values are set, instead of
using concatenate.

Improved precision of ndarray.mean for float16 arrays

The computation of the mean of float16 arrays is now carried out in float32 for
improved precision. This should be useful in packages such as Theano
where the precision of float16 is adequate and its smaller footprint is
desireable.

Changes

All array-like methods are now called with keyword arguments in fromnumeric.py

Internally, many array-like methods in fromnumeric.py were being called with
positional arguments instead of keyword arguments as their external signatures
were doing. This caused a complication in the downstream 'pandas' library
that encountered an issue with 'numpy' compatibility. Now, all array-like
methods in this module are called with keyword arguments instead.

Operations on np.memmap objects return numpy arrays in most cases

Previously operations on a memmap object would misleadingly return a memmap
instance even if the result was actually not memmapped. For example,
arr + 1 or arr + arr would return memmap instances, although no memory
from the output array is memmaped. Version 1.12 returns ordinary numpy arrays
from these operations.

Also, reduction of a memmap (e.g. .sum(axis=None) now returns a numpy
scalar instead of a 0d memmap.

stacklevel of warnings increased

The stacklevel for python based warnings was increased so that most warnings
will report the offending line of the user code instead of the line the
warning itself is given. Passing of stacklevel is now tested to ensure that
new warnings will receive the stacklevel argument.

This causes warnings with the "default" or "module" filter to be shown once
for every offending user code line or user module instead of only once. On
python versions before 3.4, this can cause warnings to appear that were falsely
ignored before, which may be surprising especially in test suits.

Contributors

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

  • Aditya Panchal +
  • Ales Erjavec +
  • Alex Griffing
  • Alexandr Shadchin +
  • Alistair Muldal
  • Allan Haldane
  • Amit Aronovitch +
  • Andrei Kucharavy +
  • Antony Lee
  • Antti Kaihola +
  • Arne de Laat +
  • Auke Wiggers +
  • AustereCuriosity +
  • Badhri Narayanan Krishnakumar +
  • Ben North +
  • Ben Rowland +
  • Bertrand Lefebvre
  • Boxiang Sun
  • CJ Carey
  • Charles Harris
  • Christoph Gohlke
  • Daniel Ching +
  • Daniel Rasmussen +
  • Daniel Smith +
  • David Schaich +
  • Denis Alevi +
  • Devin Jeanpierre +
  • Dmitry Odzerikho
  • Dongjoon Hyun +
  • Edward Richards +
  • Ekaterina Tuzova +
  • Emilien Kofman +
  • Endolith
  • Eren Sezener +
  • Eric Moore
  • Eric Quintero +
  • Eric Wieser +
  • Erik M. Bray
  • Frederic Bastien
  • Friedrich Dunne +
  • Gerrit Holl
  • Golnaz Irannejad +
  • Graham Markall +
  • Greg Knoll +
  • Greg Young
  • Gustavo Serra Scalet +
  • Ines Wichert +
  • Irvin Probst +
  • Jaime Fernandez
  • James Sanders +
  • Jan David Mol +
  • Jan Schlüter
  • Jeremy Tuloup +
  • John Kirkham
  • John Zwinck +
  • Jonathan Helmus
  • Joseph Fox-Rabinovitz
  • Josh Wilson +
  • Joshua Warner +
  • Julian Taylor
  • Ka Wo Chen +
  • Kamil Rytarowski +
  • Kelsey Jordahl +
  • Kevin Deldycke +
  • Khaled Ben Abdallah Okuda +
  • Lion Krischer +
  • Loïc Estève +
  • Luca Mussi +
  • Mads Ohm Larsen +
  • Manoj Kumar +
  • Mario Emmenlauer +
  • Marshall Bockrath-Vandegrift +
  • Marshall Ward +
  • Marten van Kerkwijk
  • Mathieu Lamarre +
  • Matthew Brett
  • Matthew Harrigan +
  • Matthias Geier
  • Matti Picus +
  • Meet Udeshi +
  • Michael Felt +
  • Michael Goerz +
  • Michael Martin +
  • Michael Seifert +
  • Mike Nolta +
  • Nathaniel Beaver +
  • Nathaniel J. Smith
  • Naveen Arunachalam +
  • Nick Papior
  • Nikola Forró +
  • Oleksandr Pavlyk +
  • Olivier Grisel
  • Oren Amsalem +
  • Pauli Virtanen
  • Pavel Potocek +
  • Pedro Lacerda +
  • Peter Creasey +
  • Phil Elson +
  • Philip Gura +
  • Phillip J. Wolfram +
  • Pierre de Buyl +
  • Raghav RV +
  • Ralf Gommers
  • Ray Donnelly +
  • Rehas Sachdeva
  • Rob Malouf +
  • Robert Kern
  • Samuel St-Jean
  • Sanchez Gonzalez Alvaro +
  • Saurabh Mehta +
  • Scott Sanderson +
  • Sebastian Berg
  • Shayan Pooya +
  • Shota Kawabuchi +
  • Simon Conseil
  • Simon Gibbons
  • Sorin Sbarnea +
  • Stefan van der Walt
  • Stephan Hoyer
  • Steven J Kern +
  • Stuart Archibald
  • Tadeu Manoel +
  • Takuya Akiba +
  • Thomas A Caswell
  • Tom Bird +
  • Tony Kelman +
  • Toshihiro Kamishima +
  • Valentin Valls +
  • Varun Nayyar
  • Victor Stinner +
  • Warren Weckesser
  • Wendell Smith
  • Wojtek Ruszczewski +
  • Xavier Abellan Ecija +
  • Yaroslav Halchenko
  • Yash Shah +
  • Yinon Ehrlich +
  • Yu Feng +
  • nevimov +

Pull requests merged

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

  • #4073: BUG: change real output checking to test if all imaginary parts...
  • #4619: BUG : np.sum silently drops keepdims for sub-classes of ndarray
  • #5488: ENH: add contract: optimizing numpy's einsum expression
  • #5706: ENH: make some masked array methods behave more like ndarray...
  • #5822: Allow many distributions to have a scale of 0.
  • #6054: WIP: MAINT: Add deprecation warning to views of multi-field indexes
  • #6298: Check lower base limit in base_repr.
  • #6430: Fix issues with zero-width string fields
  • #6656: ENH: usecols now accepts an int when only one column has to be...
  • #6660: Added pathlib support for several functions
  • #6872: ENH: linear interpolation of complex values in lib.interp
  • #6997: MAINT: Simplify mtrand.pyx helpers
  • #7003: BUG: Fix string copying for np.place
  • #7026: DOC: Clarify behavior in np.random.uniform
  • #7055: BUG: One Element Array Inputs Return Scalars in np.random
  • #7063: REL: Update master branch after 1.11.x branch has been made.
  • #7073: DOC: Update the 1.11.0 release notes.
  • #7076: MAINT: Update the git .mailmap file.
  • #7082: TST, DOC: Added Broadcasting Tests in test_random.py
  • #7087: BLD: fix compilation on non glibc-Linuxes
  • #7088: BUG: Have norm cast non-floating point arrays to 64-bit float...
  • #7090: ENH: Added 'doane' and 'sqrt' estimators to np.histogram in numpy.function_base
  • #7091: Revert "BLD: fix compilation on non glibc-Linuxes"
  • #7092: BLD: fix compilation on non glibc-Linuxes
  • #7099: TST: Suppressed warnings
  • #7102: MAINT: Removed conditionals that are always false in datetime_strings.c
  • #7105: DEP: Deprecate as_strided returning a writable array as default
  • #7109: DOC: update Python versions requirements in the install docs
  • #7114: MAINT: Fix typos in docs
  • #7116: TST: Fixed f2py test for win32 virtualenv
  • #7118: TST: Fixed f2py test for non-versioned python executables
  • #7119: BUG: Fixed mingw.lib error
  • #7125: DOC: Updated documentation wording and examples for np.percentile.
  • #7129: BUG: Fixed 'midpoint' interpolation of np.percentile in odd cases.
  • #7131: Fix setuptools sdist
  • #7133: ENH: savez: temporary file alongside with target file and improve...
  • #7134: MAINT: Fix some typos in a code string and comments
  • #7141: BUG: Unpickled void scalars should be contiguous
  • #7144: MAINT: Change call_fortran into callfortran in comments.
  • #7145: BUG: Fixed regressions in np.piecewise in ref to #5737 and #5729.
  • #7147: Temporarily disable __numpy_ufunc__
  • #7148: ENH,TST: Bump stacklevel and add tests for warnings
  • #7149: TST: Add missing suffix to temppath manager
  • #7152: BUG: mode kwargs passed as unicode to np.pad raises an exception
  • #7156: BUG: Reascertain that linspace respects ndarray subclasses in...
  • #7167: DOC: Update Wikipedia references for mtrand.pyx
  • #7171: TST: Fixed f2py test for Anaconda non-win32
  • #7174: DOC: Fix broken pandas link in release notes
  • #7177: ENH: added axis param for np.count_nonzero
  • #7178: BUG: Fix binary_repr for negative numbers
  • #7180: BUG: Fixed previous attempt to fix dimension mismatch in nanpercentile
  • #7181: DOC: Updated minor typos in function_base.py and test_function_base.py
  • #7191: DOC: add vstack, hstack, dstack reference to stack documentation.
  • #7193: MAINT: Removed supurious assert in histogram estimators
  • #7194: BUG: Raise a quieter MaskedArrayFutureWarning for mask changes.
  • #7195: STY: Drop some trailing spaces in numpy.ma.core.
  • #7196: Revert "DOC: add vstack, hstack, dstack reference to stack documentation."
  • #7197: TST: Pin virtualenv used on Travis CI.
  • #7198: ENH: Unlock the GIL for gufuncs
  • #7199: MAINT: Cleanup for histogram bin estimator selection
  • #7201: Raise IOError on not a file in python2
  • #7202: MAINT: Made iterable return a boolean
  • #7209: TST: Bump virtualenv to 14.0.6
  • #7211: DOC: Fix fmin examples
  • #7215: MAINT: Use PySlice_GetIndicesEx instead of custom reimplementation
  • #7229: ENH: implement __complex__
  • #7231: MRG: allow distributors to run custom init
  • #7232: BLD: Switch order of test for lapack_mkl and openblas_lapack
  • #7239: DOC: Removed residual merge markup from previous commit
  • #7240: Change 'pubic' to 'public'.
  • #7241: MAINT: update doc/sphinxext to numpydoc 0.6.0, and fix up some...
  • #7243: ENH: Adding support to the range keyword for estimation of the...
  • #7246: DOC: metion writeable keyword in as_strided in release notes
  • #7247: TST: Fail quickly on AppVeyor for superseded PR builds
  • #7248: DOC: remove link to documentation wiki editor from HOWTO_DOCUMENT.
  • #7250: DOC,REL: Update 1.11.0 notes.
  • #7251: BUG: only benchmark complex256 if it exists
  • #7252: Forward port a fix and enhancement from 1.11.x
  • #7253: DOC: note in h/v/dstack points users to stack/concatenate
  • #7254: BUG: Enforce dtype for randint singletons
  • #7256: MAINT: Use is None or is not None instead of == None or...
  • #7257: DOC: Fix mismatched variable names in docstrings.
  • #7258: ENH: Make numpy floor_divide and remainder agree with Python...
  • #7260: BUG/TST: Fix #7259, do not "force scalar" for already scalar...
  • #7261: Added self to mailmap
  • #7266: BUG: Segfault for classes with deceptive __len__
  • #7268: ENH: add geomspace function
  • #7274: BUG: Preserve array order in np.delete
  • #7275: DEP: Warn about assigning 'data' attribute of ndarray
  • #7276: DOC: apply_along_axis missing whitespace inserted (before colon)
  • #7278: BUG: Make returned unravel_index arrays writeable
  • #7279: TST: Fixed elements being shuffled
  • #7280: MAINT: Remove redundant trailing semicolons.
  • #7285: BUG: Make Randint Backwards Compatible with Pandas
  • #7286: MAINT: Fix typos in docs/comments of ma and polynomial modules.
  • #7292: Clarify error on repr failure in assert_equal.
  • #7294: ENH: add support for BLIS to numpy.distutils
  • #7295: DOC: understanding code and getting started section to dev doc
  • #7296: Revert part of #3907 which incorrectly propogated MaskedArray...
  • #7299: DOC: Fix mismatched variable names in docstrings.
  • #7300: DOC: dev: stop recommending keeping local master updated with...
  • #7301: DOC: Update release notes
  • #7305: BUG: Remove data race in mtrand: two threads could mutate the...
  • #7307: DOC: Missing some characters in link.
  • #7308: BUG: Incrementing the wrong reference on return
  • #7310: STY: Fix GitHub rendering of ordered lists >9
  • #7311: ENH: Make _pointer_type_cache functional
  • #7313: DOC: corrected grammatical error in quickstart doc
  • #7325: BUG, MAINT: Improve fromnumeric.py interface for downstream compatibility
  • #7328: DEP: Deprecated using a float index in linspace
  • #7331: Add comment, TST: fix MemoryError on win32
  • #7332: Check for no solution in np.irr Fixes #6744
  • #7338: TST: Install pytz in the CI.
  • #7340: DOC: Fixed math rendering in tensordot docs.
  • #7341: TST: Add test for #6469
  • #7344: DOC: Fix more typos in docs and comments.
  • #7346: Generalized flip
  • #7347: ENH Generalized rot90
  • #7348: Maint: Removed extra space from ureduce
  • #7349: MAINT: Hide nan warnings for masked internal MA computations
  • #7350: BUG: MA ufuncs should set mask to False, not array([False])
  • #7351: TST: Fix some MA tests to avoid looking at the .data attribute
  • #7358: BUG: pull request related to the issue #7353
  • #7359: Update 7314, DOC: Clarify valid integer range for random.seed...
  • #7361: MAINT: Fix copy and paste oversight.
  • #7363: ENH: Make no unshare mask future warnings less noisy
  • #7366: TST: fix #6542, add tests to check non-iterable argument raises...
  • #7373: ENH: Add bitwise_and identity
  • #7378: added NumPy logo and separator
  • #7382: MAINT: cleanup np.average
  • #7385: DOC: note about wheels / windows wheels for pypi
  • #7386: Added label icon to Travis status
  • #7397: BUG: incorrect type for objects whose __len__ fails
  • #7398: DOC: fix typo
  • #7404: Use PyMem_RawMalloc on Python 3.4 and newer
  • #7406: ENH ufunc called on memmap return a ndarray
  • #7407: BUG: Fix decref before incref for in-place accumulate
  • #7410: DOC: add nanprod to the list of math routines
  • #7414: Tweak corrcoef
  • #7415: DOC: Documention fixes
  • #7416: BUG: Incorrect handling of range in histogram with automatic...
  • #7418: DOC: Minor typo fix, hermefik -> hermefit.
  • #7421: ENH: adds np.nancumsum and np.nancumprod
  • #7423: BUG: Ongoing fixes to PR#7416
  • #7430: DOC: Update 1.11.0-notes.
  • #7433: MAINT: FutureWarning for changes to np.average subclass handling
  • #7437: np.full now defaults to the filling value's dtype.
  • #7438: Allow rolling multiple axes at the same time.
  • #7439: BUG: Do not try sequence repeat unless necessary
  • #7442: MANT: Simplify diagonal length calculation logic
  • #7445: BUG: reference count leak in bincount, fixes #6805
  • #7446: DOC: ndarray typo fix
  • #7447: BUG: scalar integer negative powers gave wrong results.
  • #7448: DOC: array "See also" link to full and full_like instead of fill
  • #7456: BUG: int overflow in reshape, fixes #7455, fixes #7293
  • #7463: BUG: fix array too big error for wide dtypes.
  • #7466: BUG: segfault inplace object reduceat, fixes #7465
  • #7468: BUG: more on inplace reductions, fixes #615
  • #7469: MAINT: Update git .mailmap
  • #7472: MAINT: Update .mailmap.
  • #7477: MAINT: Yet more .mailmap updates for recent contributors.
  • #7481: BUG: Fix segfault in PyArray_OrderConverter
  • #7482: BUG: Memory Leak in _GenericBinaryOutFunction
  • #7489: Faster real_if_close.
  • #7491: DOC: Update subclassing doc regarding downstream compatibility
  • #7496: BUG: don't use pow for integer power ufunc loops.
  • #7504: DOC: remove "arr" from keepdims docstrings
  • #7505: MAIN: fix to #7382, make scl in np.average writeable
  • #7507: MAINT: Remove nose.SkipTest import.
  • #7508: DOC: link frompyfunc and vectorize
  • #7511: numpy.power(0, 0) should return 1
  • #7515: BUG: MaskedArray.count treats negative axes incorrectly
  • #7518: BUG: Extend glibc complex trig functions blacklist to glibc <...
  • #7521: DOC: rephrase writeup of memmap changes
  • #7522: BUG: Fixed iteration over additional bad commands
  • #7526: DOC: Removed an extra :const:
  • #7529: BUG: Floating exception with invalid axis in np.lexsort
  • #7534: MAINT: Update setup.py to reflect supported python versions.
  • #7536: MAINT: Always use PyCapsule instead of PyCObject in mtrand.pyx
  • #7539: MAINT: Cleanup of random stuff
  • #7549: BUG: allow graceful recovery for no Liux compiler
  • #7562: BUG: Fix test_from_object_array_unicode (test_defchararray.TestBasic)…
  • #7565: BUG: Fix test_ctypeslib and test_indexing for debug interpreter
  • #7566: MAINT: use manylinux1 wheel for cython
  • #7568: Fix a false positive OverflowError in Python 3.x when value above...
  • #7579: DOC: clarify purpose of Attributes section
  • #7584: BUG: fixes #7572, percent in path
  • #7586: Make np.ma.take works on scalars
  • #7587: BUG: linalg.norm(): Don't convert object arrays to float
  • #7598: Cast array size to int64 when loading from archive
  • #7602: DOC: Remove isreal and iscomplex from ufunc list
  • #7605: DOC: fix incorrect Gamma distribution parameterization comments
  • #7609: BUG: Fix TypeError when raising TypeError
  • #7611: ENH: expose test runner raise_warnings option
  • #7614: BLD: Avoid using os.spawnve in favor of os.spawnv in exec_command
  • #7618: BUG: distance arg of np.gradient must be scalar, fix docstring
  • #7626: DOC: RST definition list fixes
  • #7627: MAINT: unify tup processing, move tup use to after all PyTuple_SetItem...
  • #7630: MAINT: add ifdef around PyDictProxy_Check macro
  • #7631: MAINT: linalg: fix comment, simplify math
  • #7634: BLD: correct C compiler customization in system_info.py Closes...
  • #7635: BUG: ma.median alternate fix for #7592
  • #7636: MAINT: clean up testing.assert_raises_regexp, 2.6-specific code...
  • #7637: MAINT: clearer exception message when importing multiarray fails.
  • #7639: TST: fix a set of test errors in master.
  • #7643: DOC : minor changes to linspace docstring
  • #7651: BUG: one to any power is still 1. Broken edgecase for int arrays
  • #7655: BLD: Remove Intel compiler flag -xSSE4.2
  • #7658: BUG: fix incorrect printing of 1D masked arrays
  • #7659: BUG: Temporary fix for str(mvoid) for object field types
  • #7664: BUG: Fix unicode with byte swap transfer and copyswap
  • #7667: Restore histogram consistency
  • #7668: ENH: Do not check the type of module.dict explicit in test.
  • #7669: BUG: boolean assignment no GIL release when transfer needs API
  • #7673: DOC: Create Numpy 1.11.1 release notes.
  • #7675: BUG: fix handling of right edge of final bin.
  • #7678: BUG: Fix np.clip bug NaN handling for Visual Studio 2015
  • #7679: MAINT: Fix up C++ comment in arraytypes.c.src.
  • #7681: DOC: Update 1.11.1 release notes.
  • #7686: ENH: Changing FFT cache to a bounded LRU cache
  • #7688: DOC: fix broken genfromtxt examples in user guide. Closes gh-7662.
  • #7689: BENCH: add correlate/convolve benchmarks.
  • #7696: DOC: update wheel build / upload instructions
  • #7699: BLD: preserve library order
  • #7704: ENH: Add bits attribute to np.finfo
  • #7712: BUG: Fix race condition with new FFT cache
  • #7715: BUG: Remove memory leak in np.place
  • #7719: BUG: Fix segfault in np.random.shuffle for arrays of different...
  • #7723: Change mkl_info.dir_env_var from MKL to MKLROOT
  • #7727: DOC: Corrections in Datetime Units-arrays.datetime.rst
  • #7729: DOC: fix typo in savetxt docstring (closes #7620)
  • #7733: Update 7525, DOC: Fix order='A' docs of np.array.
  • #7734: Update 7542, ENH: Add polyrootval to numpy.polynomial
  • #7735: BUG: fix issue on OS X with Python 3.x where npymath.ini was...
  • #7739: DOC: Mention the changes of #6430 in the release notes.
  • #7740: DOC: add reference to poisson rng
  • #7743: Update 7476, DEP: deprecate Numeric-style typecodes, closes #2148
  • #7744: DOC: Remove "ones_like" from ufuncs list (it is not)
  • #7746: DOC: Clarify the effect of rcond in numpy.linalg.lstsq.
  • #7747: Update 7672, BUG: Make sure we don't divide by zero
  • #7748: DOC: Update float32 mean example in docstring
  • #7754: Update 7612, ENH: Add broadcast.ndim to match code elsewhere.
  • #7757: Update 7175, BUG: Invalid read of size 4 in PyArray_FromFile
  • #7759: BUG: Fix numpy.i support for numpy API < 1.7.
  • #7760: ENH: Make assert_almost_equal & assert_array_almost_equal consistent.
  • #7766: fix an English typo
  • #7771: DOC: link geomspace from logspace
  • #7773: DOC: Remove a redundant the
  • #7777: DOC: Update Numpy 1.11.1 release notes.
  • #7785: DOC: update wheel building procedure for release
  • #7789: MRG: add note of 64-bit wheels on Windows
  • #7791: f2py.compile issues (#7683)
  • #7799: "lambda" is not allowed to use as keyword arguments in a sample...
  • #7803: BUG: interpret 'c' PEP3118/struct type as 'S1'.
  • #7807: DOC: Misplaced parens in formula
  • #7817: BUG: Make sure npy_mul_with_overflow_ detects overflow.
  • #7818: numpy/distutils/misc_util.py fix for #7809: check that _tmpdirs...
  • #7820: MAINT: Allocate fewer bytes for empty arrays.
  • #7823: BUG: Fixed masked array behavior for scalar inputs to np.ma.atleast_*d
  • #7834: DOC: Added an example
  • #7839: Pypy fixes
  • #7840: Fix ATLAS version detection
  • #7842: Fix versionadded tags
  • #7848: MAINT: Fix remaining uses of deprecated Python imp module.
  • #7853: BUG: Make sure numpy globals keep identity after reload.
  • #7863: ENH: turn quicksort into introsort
  • #7866: Document runtests extra argv
  • #7871: BUG: handle introsort depth limit properly
  • #7879: DOC: fix typo in documentation of loadtxt (closes #7878)
  • #7885: Handle NetBSD specific <sys/endian.h>
  • #7889: DOC: #7881. Fix link to record arrays
  • #7894: fixup-7790, BUG: construct ma.array from np.array which contains...
  • #7898: Spelling and grammar fix.
  • #7903: BUG: fix float16 type not being called due to wrong ordering
  • #7908: BLD: Fixed detection for recent MKL versions
  • #7911: BUG: fix for issue#7835 (ma.median of 1d)
  • #7912: ENH: skip or avoid gc/objectmodel differences btwn pypy and cpython
  • #7918: ENH: allow numpy.apply_along_axis() to work with ndarray subclasses
  • #7922: ENH: Add ma.convolve and ma.correlate for #6458
  • #7925: Monkey-patch _msvccompile.gen_lib_option like any other compilators
  • #7931: BUG: Check for HAVE_LDOUBLE_DOUBLE_DOUBLE_LE in npy_math_complex.
  • #7936: ENH: improve duck typing inside iscomplexobj
  • #7937: BUG: Guard against buggy comparisons in generic quicksort.
  • #7938: DOC: add cbrt to math summary page
  • #7941: BUG: Make sure numpy globals keep identity after reload.
  • #7943: DOC: #7927. Remove deprecated note for memmap relevant for Python...
  • #7952: BUG: Use keyword arguments to initialize Extension base class.
  • #7956: BLD: remove __NUMPY_SETUP__ from builtins at end of setup.py
  • #7963: BUG: MSVCCompiler grows 'lib' & 'include' env strings exponentially.
  • #7965: BUG: cannot modify tuple after use
  • #7976: DOC: Fixed documented dimension of return value
  • #7977: DOC: Create 1.11.2 release notes.
  • #7979: DOC: Corrected allowed keywords in add_(installed_)library
  • #7980: ENH: Add ability to runtime select ufunc loops, add AVX2 integer...
  • #7985: Rebase 7763, ENH: Add new warning suppression/filtering context
  • #7987: DOC: See also np.load and np.memmap in np.lib.format.open_memmap
  • #7988: DOC: Include docstring for cbrt, spacing and fabs in documentation
  • #7999: ENH: add inplace cases to fast ufunc loop macros
  • #8006: DOC: Update 1.11.2 release notes.
  • #8008: MAINT: Remove leftover imp module imports.
  • #8009: DOC: Fixed three typos in the c-info.ufunc-tutorial
  • #8011: DOC: Update 1.11.2 release notes.
  • #8014: BUG: Fix fid.close() to use os.close(fid)
  • #8016: BUG: Fix numpy.ma.median.
  • #8018: BUG: Fixes return for np.ma.count if keepdims is True and axis...
  • #8021: DOC: change all non-code instances of Numpy to NumPy
  • #8027: ENH: Add platform indepedent lib dir to PYTHONPATH
  • #8028: DOC: Update 1.11.2 release notes.
  • #8030: BUG: fix np.ma.median with only one non-masked value and an axis...
  • #8038: MAINT: Update error message in rollaxis.
  • #8040: Update add_newdocs.py
  • #8042: BUG: core: fix bug in NpyIter buffering with discontinuous arrays
  • #8045: DOC: Update 1.11.2 release notes.
  • #8050: remove refcount semantics, now a.resize() almost always requires...
  • #8051: Clear signaling NaN exceptions
  • #8054: ENH: add signature argument to vectorize for vectorizing like...
  • #8057: BUG: lib: Simplify (and fix) pad's handling of the pad_width
  • #8061: BUG : financial.pmt modifies input (issue #8055)
  • #8064: MAINT: Add PMIP files to .gitignore
  • #8065: BUG: Assert fromfile ending earlier in pyx_processing
  • #8066: BUG, TST: Fix python3-dbg bug in Travis script
  • #8071: MAINT: Add Tempita to randint helpers
  • #8075: DOC: Fix description of isinf in nan_to_num
  • #8080: BUG: non-integers can end up in dtype offsets
  • #8081: Update outdated Nose URL to nose.readthedocs.io
  • #8083: ENH: Deprecation warnings for / integer division when running...
  • #8084: DOC: Fix erroneous return type description for np.roots.
  • #8087: BUG: financial.pmt modifies input #8055
  • #8088: MAINT: Remove duplicate randint helpers code.
  • #8093: MAINT: fix assert_raises_regex when used as a context manager
  • #8096: ENH: Vendorize tempita.
  • #8098: DOC: Enhance description/usage for np.linalg.eig*h
  • #8103: ENH: Pypy fixes
  • #8104: Fix test code on cpuinfo's main function
  • #8107: BUG: Fix array printing with precision=0.
  • #8109: Fix bug in ravel_multi_index for big indices (Issue #7546)
  • #8110: BUG: distutils: fix issue with rpath in fcompiler/gnu.py
  • #8111: ENH: Add a tool for release authors and PRs.
  • #8112: DOC: Fix "See also" links in linalg.
  • #8114: BUG: core: add missing error check after PyLong_AsSsize_t
  • #8121: DOC: Improve histogram2d() example.
  • #8122: BUG: Fix broken pickle in MaskedArray when dtype is object (Return...
  • #8124: BUG: Fixed build break
  • #8125: Rebase, BUG: Fixed deepcopy of F-order object arrays.
  • #8127: BUG: integers to a negative integer powers should error.
  • #8141: improve configure checks for broken systems
  • #8142: BUG: np.ma.mean and var should return scalar if no mask
  • #8148: BUG: import full module path in npy_load_module
  • #8153: MAINT: Expose void-scalar "base" attribute in python
  • #8156: DOC: added example with empty indices for a scalar, #8138
  • #8160: BUG: fix _array2string for structured array (issue #5692)
  • #8164: MAINT: Update mailmap for NumPy 1.12.0
  • #8165: Fixup 8152, BUG: assert_allclose(..., equal_nan=False) doesn't...
  • #8167: Fixup 8146, DOC: Clarify when PyArray_{Max, Min, Ptp} return...
  • #8168: DOC: Minor spelling fix in genfromtxt() docstring.
  • #8173: BLD: Enable build on AIX
  • #8174: DOC: warn that dtype.descr is only for use in PEP3118
  • #8177: MAINT: Add python 3.6 support to suppress_warnings
  • #8178: MAINT: Fix ResourceWarning new in Python 3.6.
  • #8180: FIX: protect stolen ref by PyArray_NewFromDescr in array_empty
  • #8181: ENH: Improve announce to find github squash-merge commits.
  • #8182: MAINT: Update .mailmap
  • #8183: MAINT: Ediff1d performance
  • #8184: MAINT: make assert_allclose behavior on nans match pre 1.12
  • #8188: DOC: 'highest' is exclusive for randint()
  • #8189: BUG: setfield should raise if arr is not writeable
  • #8190: ENH: Add a float_power function with at least float64 precision.
  • #8197: DOC: Add missing arguments to np.ufunc.outer
  • #8198: DEP: Deprecate the keepdims argument to accumulate
  • #8199: MAINT: change path to env in distutils.system_info. Closes gh-8195.
  • #8200: BUG: Fix structured array format functions
  • #8202: ENH: specialize name of dev package by interpreter
  • #8205: DOC: change development instructions from SSH to HTTPS access.
  • #8216: DOC: Patch doc errors for atleast_nd and frombuffer
  • #8218: BUG: ediff1d should return subclasses
  • #8219: DOC: Turn SciPy references into links.
  • #8222: ENH: Make numpy.mean() do more precise computation
  • #8227: BUG: Better check for invalid bounds in np.random.uniform.
  • #8231: ENH: Refactor numpy ** operators for numpy scalar integer powers
  • #8234: DOC: Clarified when a copy is made in numpy.asarray
  • #8236: DOC: Fix documentation pull requests.
  • #8238: MAINT: Update pavement.py
  • #8239: ENH: Improve announce tool.
  • #8240: REL: Prepare for 1.12.x branch
  • #8243: BUG: Update operator ** tests for new behavior.
  • #8246: REL: Reset strides for RELAXED_STRIDE_CHECKING for 1.12 releases.
  • #8265: BUG: np.piecewise not working for scalars
  • #8272: TST: Path test should resolve symlinks when comparing
  • #8282: DOC: Update 1.12.0 release notes.
  • #8286: BUG: Fix pavement.py write_release_task.
  • #8296: BUG: Fix iteration over reversed subspaces in mapiter_@name@.
  • #8304: BUG: Fix PyPy crash in PyUFunc_GenericReduction.
  • #8319: BLD: blacklist powl (longdouble power function) on OS X.
  • #8320: BUG: do not link to Accelerate if OpenBLAS, MKL or BLIS are found.
  • #8322: BUG: fixed kind specifications for parameters
  • #8336: BUG: fix packbits and unpackbits to correctly handle empty arrays
  • #8338: BUG: fix test_api test that fails intermittently in python 3
  • #8339: BUG: Fix ndarray.tofile large file corruption in append mode.
  • #8359: BUG: Fix suppress_warnings (again) for Python 3.6.
  • #8372: BUG: Fixes for ma.median and nanpercentile.
  • #8373: BUG: correct letter case
  • #8379: DOC: Update 1.12.0-notes.rst.
  • #8390: ENH: retune apply_along_axis nanmedian cutoff in 1.12
  • #8391: DEP: Fix escaped string characters deprecated in Python 3.6.
  • #8394: DOC: create 1.11.3 release notes.
  • #8399: BUG: Fix author search in announce.py
  • #8402: DOC, MAINT: Update 1.12.0 notes and mailmap.
  • #8418: BUG: Fix ma.median even elements for 1.12
  • #8424: DOC: Fix tools and release notes to be more markdown compatible.
  • #8427: BUG: Add a lock to assert_equal and other testing functions
  • #8431: BUG: Fix apply_along_axis() for when func1d() returns a non-ndarray.
  • #8432: BUG: Let linspace accept input that has an array_interface.
  • #8437: TST: Update 3.6-dev tests to 3.6 after Python final release.
  • #8439: DOC: Update 1.12.0 release notes.
  • #8466: MAINT: Update mailmap entries.
  • #8467: DOC: Back-port the missing part of gh-8464.
  • #8476: DOC: Update 1.12.0 release notes.
  • #8477: DOC: Update 1.12.0 release notes.

Checksums

MD5

3d870f571fbc1dad2fd81515de689abf  numpy-1.12.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
cae3611aa666eef0597866dfc59a6671  numpy-1.12.0-cp27-cp27m-manylinux1_i686.whl
e6ac7b379bc53e3220fc9c0d8c85624d  numpy-1.12.0-cp27-cp27m-manylinux1_x86_64.whl
40688215dc3020bece11f186df88c254  numpy-1.12.0-cp27-cp27mu-manylinux1_i686.whl
9f9bc53d2e281831e1a75be0c09a9548  numpy-1.12.0-cp27-cp27mu-manylinux1_x86_64.whl
5ea683e61094e0f5297f527d75d35f8d  numpy-1.12.0-cp27-none-win32.whl
a0e2cf28701964ce32b27ce3d2d670d5  numpy-1.12.0-cp27-none-win_amd64.whl
e57f9f0ba8fed7cc8d5ef256e4dee3c9  numpy-1.12.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
1b7af502fe2200652608073f6e13c233  numpy-1.12.0-cp34-cp34m-manylinux1_i686.whl
0197a7f4060e82bf03a450fcac4f56a3  numpy-1.12.0-cp34-cp34m-manylinux1_x86_64.whl
f5e25075731cedfbf24c7db494003cfd  numpy-1.12.0-cp34-none-win32.whl
e65e9cf4864d17f1e490bc5d5b88c587  numpy-1.12.0-cp34-none-win_amd64.whl
21b3dafa7e4644ca27d15f91e02a9503  numpy-1.12.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
3ddca2ebe93a880ece4e09b4756f3b7e  numpy-1.12.0-cp35-cp35m-manylinux1_i686.whl
1938e565fe049351342fb6800f14b0d8  numpy-1.12.0-cp35-cp35m-manylinux1_x86_64.whl
edb061429a0ed84787205a5f18266bcb  numpy-1.12.0-cp35-none-win32.whl
ce2c1303b7be932e216388ba2480f581  numpy-1.12.0-cp35-none-win_amd64.whl
b8e5150a12bbf13ca4ab847839906e5f  numpy-1.12.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
56ce905c77bae20026cf15f5b303748a  numpy-1.12.0-cp36-cp36m-manylinux1_i686.whl
397600ce67594eaab38f0d3accc181ce  numpy-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
8b660d969a04678ad21726580811e55d  numpy-1.12.0-cp36-none-win32.whl
3d29bf5c852b4eb81b127bbad001610e  numpy-1.12.0-cp36-none-win_amd64.whl
07672c5061fc9c3d258eb8802b68b1a2  numpy-1.12.0.tar.gz
33e5a84579f31829bbbba084fe0a4300  numpy-1.12.0.zip

SHA256

bf5df5c600b3d798382bb7d050d2ac4345d9f5c1277283a695e36928945f3cfd  numpy-1.12.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
ea8115bb72a0c5d46f2a32dce490dcc27f9bea6c6ab6934df30420c2293e3411  numpy-1.12.0-cp27-cp27m-manylinux1_i686.whl
13acbf9ed3e7eb3691cd4e842804d06bfc5ba48b68b35b7d54addd0246def197  numpy-1.12.0-cp27-cp27m-manylinux1_x86_64.whl
1ac518945ca78fc54b63bdd30f790ac4d509448d2d26d20e6c1c063b8d9d05fb  numpy-1.12.0-cp27-cp27mu-manylinux1_i686.whl
160a3168325fa4ef04cddff168ab9cffd0e579a911fdf8d888dbf06be49d2253  numpy-1.12.0-cp27-cp27mu-manylinux1_x86_64.whl
70dfe7b936f7953f6366fa5bf03f127ec322b737469e97a41b7096af4673051c  numpy-1.12.0-cp27-none-win32.whl
e307978ab4a5f7f3c88c0eadab482249b01bc6dc943e9fc32d6b696c1cd45ea0  numpy-1.12.0-cp27-none-win_amd64.whl
29e3f343b61d009293070bafc1048a8370d0558cb4b0e26f69e71831922c6b31  numpy-1.12.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
249841fd5e211e4ccbeac276a7c794c7ac841e798508fb151dc67559c65941df  numpy-1.12.0-cp34-cp34m-manylinux1_i686.whl
08ca549ac6e4f86a052e8d2d2eddcb00b61e642ddd3ef55b57c4756a06459604  numpy-1.12.0-cp34-cp34m-manylinux1_x86_64.whl
a8a402599b7e3f193ff97a859fde7f165df4d46d20621d05f535f25a437100e0  numpy-1.12.0-cp34-none-win32.whl
f77965ace763464336a2eb84a2ae14cefb58a6a5ceaa5fab4072308623a6d6e3  numpy-1.12.0-cp34-none-win_amd64.whl
f6a56e2278348395279eedba201d344fd8cc1017c6b4fd6c3d9a08a81efe5dfa  numpy-1.12.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
a0644c0f861c96146a641a160011069b7726791b80aa94791dcf24f0abcb8c09  numpy-1.12.0-cp35-cp35m-manylinux1_i686.whl
de35d0b8ff0c0499ff143c7b408fdb592c5e2e56801e30f992be1d8540ac8b12  numpy-1.12.0-cp35-cp35m-manylinux1_x86_64.whl
778c8c5f734c47c0292c4df17cc7d5acb4957dd8972793b9c3a6b37a333f4be0  numpy-1.12.0-cp35-none-win32.whl
84cec2549e94dd147a384d60d8ab342309f80c8e099b2325505a202cd3a764a5  numpy-1.12.0-cp35-none-win_amd64.whl
204ffa15185d4b94eaef06d3395bd6ae032fb9db3985a2e3fd758121062021a0  numpy-1.12.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
1595d07b935aac12aa62c27c59ad9e7b7f3072d9576fad18730efabe322ccc3f  numpy-1.12.0-cp36-cp36m-manylinux1_i686.whl
818a09855c5a257aea637c73755806dfec130ecf190130a34bf1546ef69b77e3  numpy-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
ca9ec2610751628f485a2fc8ca3f31980cb539d7f9477b72273f066640816ca2  numpy-1.12.0-cp36-none-win32.whl
0bcf40e7717bc03d3af614a5bd8b8448f549abc922445e576198de9885547e69  numpy-1.12.0-cp36-none-win_amd64.whl
8bea5b5194829fbc1c562e7602119a04b9ec121c59009df67be5924be48530dc  numpy-1.12.0.tar.gz
ff320ecfe41c6581c8981dce892fe6d7e69806459a899e294e4bf8229737b154  numpy-1.12.0.zip
numpy -

Published by charris almost 8 years ago

NumPy 1.12.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

The NumPy 1.12.0 release contains a large number of fixes and improvements, but
few that stand out above all others. That makes picking out the highlights
somewhat arbitrary but the following may be of particular interest or indicate
areas likely to have future consequences.

  • Order of operations in np.einsum can now be optimized for large speed improvements.
  • New signature argument to np.vectorize for vectorizing with core dimensions.
  • The keepdims argument was added to many functions.
  • New context manager for testing warnings
  • Support for BLIS in numpy.distutils
  • Much improved support for PyPy (not yet finished)

Dropped Support

  • Support for Python 2.6, 3.2, and 3.3 has been dropped.

Added Support

  • Support for PyPy 2.7 v5.6.0 has been added. While not complete (nditer
    updateifcopy is not supported yet), this is a milestone for PyPy's
    C-API compatibility layer.

Build System Changes

  • Library order is preserved, instead of being reordered to match that of
    the directories.

Deprecations

Assignment of ndarray object's data attribute

Assigning the 'data' attribute is an inherently unsafe operation as pointed
out in gh-7083. Such a capability will be removed in the future.

Unsafe int casting of the num attribute in linspace

np.linspace now raises DeprecationWarning when num cannot be safely
interpreted as an integer.

Insufficient bit width parameter to binary_repr

If a 'width' parameter is passed into binary_repr that is insufficient to
represent the number in base 2 (positive) or 2's complement (negative) form,
the function used to silently ignore the parameter and return a representation
using the minimal number of bits needed for the form in question. Such behavior
is now considered unsafe from a user perspective and will raise an error in the
future.

Future Changes

  • In 1.13 NAT will always compare False except for NAT != NAT,
    which will be True. In short, NAT will behave like NaN
  • In 1.13 np.average will preserve subclasses, to match the behavior of most
    other numpy functions such as np.mean. In particular, this means calls which
    returned a scalar may return a 0-d subclass object instead.

Multiple-field manipulation of structured arrays

In 1.13 the behavior of structured arrays involving multiple fields will change
in two ways:

First, indexing a structured array with multiple fields (eg,
arr[['f1', 'f3']]) will return a view into the original array in 1.13,
instead of a copy. Note the returned view will have extra padding bytes
corresponding to intervening fields in the original array, unlike the copy in
1.12, which will affect code such as arr[['f1', 'f3']].view(newdtype).

Second, for numpy versions 1.6 to 1.12 assignment between structured arrays
occurs "by field name": Fields in the destination array are set to the
identically-named field in the source array or to 0 if the source does not have
a field::

>>> a = np.array([(1,2),(3,4)], dtype=[('x', 'i4'), ('y', 'i4')])
>>> b = np.ones(2, dtype=[('z', 'i4'), ('y', 'i4'), ('x', 'i4')])
>>> b[:] = a
>>> b
array([(0, 2, 1), (0, 4, 3)],
      dtype=[('z', '<i4'), ('y', '<i4'), ('x', '<i4')])

In 1.13 assignment will instead occur "by position": The Nth field of the
destination will be set to the Nth field of the source regardless of field
name. The old behavior can be obtained by using indexing to reorder the fields
before
assignment, e.g., b[['x', 'y']] = a[['y', 'x']].

Compatibility notes

DeprecationWarning to error

  • Indexing with floats raises IndexError,
    e.g., a[0, 0.0].
  • Indexing with non-integer array_like raises IndexError,
    e.g., a['1', '2']
  • Indexing with multiple ellipsis raises IndexError,
    e.g., a[..., ...].
  • Non-integers used as index values raise TypeError,
    e.g., in reshape, take, and specifying reduce axis.

FutureWarning to changed behavior

  • np.full now returns an array of the fill-value's dtype if no dtype is
    given, instead of defaulting to float.
  • np.average will emit a warning if the argument is a subclass of ndarray,
    as the subclass will be preserved starting in 1.13. (see Future Changes)

power and ** raise errors for integer to negative integer powers

The previous behavior depended on whether numpy scalar integers or numpy
integer arrays were involved.

For arrays

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers returned zero when raised to negative integer powers.

For scalars

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers sometimes returned zero, sometimes the
    correct float depending on the integer type combination.

All of these cases now raise a ValueError except for those integer
combinations whose common type is float, for instance uint64 and int8. It was
felt that a simple rule was the best way to go rather than have special
exceptions for the integer units. If you need negative powers, use an inexact
type.

Relaxed stride checking is the default

This will have some impact on code that assumed that F_CONTIGUOUS and
C_CONTIGUOUS were mutually exclusive and could be set to determine the
default order for arrays that are now both.

The np.percentile 'midpoint' interpolation method fixed for exact indices

The 'midpoint' interpolator now gives the same result as 'lower' and 'higher' when
the two coincide. Previous behavior of 'lower' + 0.5 is fixed.

keepdims kwarg is passed through to user-class methods

numpy functions that take a keepdims kwarg now pass the value
through to the corresponding methods on ndarray sub-classes. Previously the
keepdims keyword would be silently dropped. These functions now have
the following behavior:

  1. If user does not provide keepdims, no keyword is passed to the underlying
    method.
  2. Any user-provided value of keepdims is passed through as a keyword
    argument to the method.

This will raise in the case where the method does not support a
keepdims kwarg and the user explicitly passes in keepdims.

The following functions are changed: sum, product,
sometrue, alltrue, any, all, amax, amin,
prod, mean, std, var, nanmin, nanmax,
nansum, nanprod, nanmean, nanmedian, nanvar,
nanstd

bitwise_and identity changed

The previous identity was 1, it is now -1. See entry in Improvements_ for
more explanation.

ma.median warns and returns nan when unmasked invalid values are encountered

Similar to unmasked median the masked median ma.median now emits a Runtime
warning and returns NaN in slices where an unmasked NaN is present.

Greater consistancy in assert_almost_equal

The precision check for scalars has been changed to match that for arrays. It
is now::

abs(actual - desired) < 1.5 * 10**(-decimal)

Note that this is looser than previously documented, but agrees with the
previous implementation used in assert_array_almost_equal. Due to the
change in implementation some very delicate tests may fail that did not
fail before.

NoseTester behaviour of warnings during testing

When raise_warnings="develop" is given, all uncaught warnings will now
be considered a test failure. Previously only selected ones were raised.
Warnings which are not caught or raised (mostly when in release mode)
will be shown once during the test cycle similar to the default python
settings.

assert_warns and deprecated decorator more specific

The assert_warns function and context manager are now more specific
to the given warning category. This increased specificity leads to them
being handled according to the outer warning settings. This means that
no warning may be raised in cases where a wrong category warning is given
and ignored outside the context. Alternatively the increased specificity
may mean that warnings that were incorrectly ignored will now be shown
or raised. See also the new suppress_warnings context manager.
The same is true for the deprecated decorator.

C API

No changes.

New Features

Writeable keyword argument for as_strided

np.lib.stride_tricks.as_strided now has a writeable
keyword argument. It can be set to False when no write operation
to the returned array is expected to avoid accidental
unpredictable writes.

axes keyword argument for rot90

The axes keyword argument in rot90 determines the plane in which the
array is rotated. It defaults to axes=(0,1) as in the originial function.

Generalized flip

flipud and fliplr reverse the elements of an array along axis=0 and
axis=1 respectively. The newly added flip function reverses the elements of
an array along any given axis.

  • np.count_nonzero now has an axis parameter, allowing
    non-zero counts to be generated on more than just a flattened
    array object.

BLIS support in numpy.distutils

Building against the BLAS implementation provided by the BLIS library is now
supported. See the [blis] section in site.cfg.example (in the root of
the numpy repo or source distribution).

Hook in numpy/__init__.py to run distribution-specific checks

Binary distributions of numpy may need to run specific hardware checks or load
specific libraries during numpy initialization. For example, if we are
distributing numpy with a BLAS library that requires SSE2 instructions, we
would like to check the machine on which numpy is running does have SSE2 in
order to give an informative error.

Add a hook in numpy/__init__.py to import a numpy/_distributor_init.py
file that will remain empty (bar a docstring) in the standard numpy source,
but that can be overwritten by people making binary distributions of numpy.

New nanfunctions nancumsum and nancumprod added

Nan-functions nancumsum and nancumprod have been added to
compute cumsum and cumprod by ignoring nans.

np.interp can now interpolate complex values

np.lib.interp(x, xp, fp) now allows the interpolated array fp
to be complex and will interpolate at complex128 precision.

New polynomial evaluation function polyvalfromroots added

The new function polyvalfromroots evaluates a polynomial at given points
from the roots of the polynomial. This is useful for higher order polynomials,
where expansion into polynomial coefficients is inaccurate at machine
precision.

New array creation function geomspace added

The new function geomspace generates a geometric sequence. It is similar
to logspace, but with start and stop specified directly:
geomspace(start, stop) behaves the same as
logspace(log10(start), log10(stop)).

New context manager for testing warnings

A new context manager suppress_warnings has been added to the testing
utils. This context manager is designed to help reliably test warnings.
Specifically to reliably filter/ignore warnings. Ignoring warnings
by using an "ignore" filter in Python versions before 3.4.x can quickly
result in these (or similar) warnings not being tested reliably.

The context manager allows to filter (as well as record) warnings similar
to the catch_warnings context, but allows for easier specificity.
Also printing warnings that have not been filtered or nesting the
context manager will work as expected. Additionally, it is possible
to use the context manager as a decorator which can be useful when
multiple tests give need to hide the same warning.

New masked array functions ma.convolve and ma.correlate added

These functions wrapped the non-masked versions, but propagate through masked
values. There are two different propagation modes. The default causes masked
values to contaminate the result with masks, but the other mode only outputs
masks if there is no alternative.

New float_power ufunc

The new float_power ufunc is like the power function except all
computation is done in a minimum precision of float64. There was a long
discussion on the numpy mailing list of how to treat integers to negative
integer powers and a popular proposal was that the __pow__ operator should
always return results of at least float64 precision. The float_power
function implements that option. Note that it does not support object arrays.

np.loadtxt now supports a single integer as usecol argument

Instead of using usecol=(n,) to read the nth column of a file
it is now allowed to use usecol=n. Also the error message is
more user friendly when a non-integer is passed as a column index.

Improved automated bin estimators for histogram

Added 'doane' and 'sqrt' estimators to histogram via the bins
argument. Added support for range-restricted histograms with automated
bin estimation.

np.roll can now roll multiple axes at the same time

The shift and axis arguments to roll are now broadcast against each
other, and each specified axis is shifted accordingly.

The __complex__ method has been implemented for the ndarrays

Calling complex() on a size 1 array will now cast to a python
complex.

pathlib.Path objects now supported

The standard np.load, np.save, np.loadtxt, np.savez, and similar
functions can now take pathlib.Path objects as an argument instead of a
filename or open file object.

New bits attribute for np.finfo

This makes np.finfo consistent with np.iinfo which already has that
attribute.

New signature argument to np.vectorize

This argument allows for vectorizing user defined functions with core
dimensions, in the style of NumPy's
:ref:generalized universal functions<c-api.generalized-ufuncs>. This allows
for vectorizing a much broader class of functions. For example, an arbitrary
distance metric that combines two vectors to produce a scalar could be
vectorized with signature='(n),(n)->()'. See np.vectorize for full
details.

Emit py3kwarnings for division of integer arrays

To help people migrate their code bases from Python 2 to Python 3, the
python interpreter has a handy option -3, which issues warnings at runtime.
One of its warnings is for integer division::

$ python -3 -c "2/3"

-c:1: DeprecationWarning: classic int division

In Python 3, the new integer division semantics also apply to numpy arrays.
With this version, numpy will emit a similar warning::

$ python -3 -c "import numpy as np; np.array(2)/np.array(3)"

-c:1: DeprecationWarning: numpy: classic int division

numpy.sctypes now includes bytes on Python3 too

Previously, it included str (bytes) and unicode on Python2, but only str
(unicode) on Python3.

Improvements

bitwise_and identity changed

The previous identity was 1 with the result that all bits except the LSB were
masked out when the reduce method was used. The new identity is -1, which
should work properly on twos complement machines as all bits will be set to
one.

Generalized Ufuncs will now unlock the GIL

Generalized Ufuncs, including most of the linalg module, will now unlock
the Python global interpreter lock.

Caches in np.fft are now bounded in total size and item count

The caches in np.fft that speed up successive FFTs of the same length can no
longer grow without bounds. They have been replaced with LRU (least recently
used) caches that automatically evict no longer needed items if either the
memory size or item count limit has been reached.

Improved handling of zero-width string/unicode dtypes

Fixed several interfaces that explicitly disallowed arrays with zero-width
string dtypes (i.e. dtype('S0') or dtype('U0'), and fixed several
bugs where such dtypes were not handled properly. In particular, changed
ndarray.__new__ to not implicitly convert dtype('S0') to
dtype('S1') (and likewise for unicode) when creating new arrays.

Integer ufuncs vectorized with AVX2

If the cpu supports it at runtime the basic integer ufuncs now use AVX2
instructions. This feature is currently only available when compiled with GCC.

Order of operations optimization in np.einsum

np.einsum now supports the optimize argument which will optimize the
order of contraction. For example, np.einsum would complete the chain dot
example np.einsum(‘ij,jk,kl->il’, a, b, c) in a single pass which would
scale like N^4; however, when optimize=True np.einsum will create
an intermediate array to reduce this scaling to N^3 or effectively
np.dot(a, b).dot(c). Usage of intermediate tensors to reduce scaling has
been applied to the general einsum summation notation. See np.einsum_path
for more details.

quicksort has been changed to an introsort

The quicksort kind of np.sort and np.argsort is now an introsort which
is regular quicksort but changing to a heapsort when not enough progress is
made. This retains the good quicksort performance while changing the worst case
runtime from O(N^2) to O(N*log(N)).

ediff1d improved performance and subclass handling

The ediff1d function uses an array instead on a flat iterator for the
subtraction. When to_begin or to_end is not None, the subtraction is performed
in place to eliminate a copy operation. A side effect is that certain
subclasses are handled better, namely astropy.Quantity, since the complete
array is created, wrapped, and then begin and end values are set, instead of
using concatenate.

Improved precision of ndarray.mean for float16 arrays

The computation of the mean of float16 arrays is now carried out in float32 for
improved precision. This should be useful in packages such as scikit-learn
where the precision of float16 is adequate and its smaller footprint is
desireable.

Changes

All array-like methods are now called with keyword arguments in fromnumeric.py

Internally, many array-like methods in fromnumeric.py were being called with
positional arguments instead of keyword arguments as their external signatures
were doing. This caused a complication in the downstream 'pandas' library
that encountered an issue with 'numpy' compatibility. Now, all array-like
methods in this module are called with keyword arguments instead.

Operations on np.memmap objects return numpy arrays in most cases

Previously operations on a memmap object would misleadingly return a memmap
instance even if the result was actually not memmapped. For example,
arr + 1 or arr + arr would return memmap instances, although no memory
from the output array is memmaped. Version 1.12 returns ordinary numpy arrays
from these operations.

Also, reduction of a memmap (e.g. .sum(axis=None) now returns a numpy
scalar instead of a 0d memmap.

stacklevel of warnings increased

The stacklevel for python based warnings was increased so that most warnings
will report the offending line of the user code instead of the line the
warning itself is given. Passing of stacklevel is now tested to ensure that
new warnings will receive the stacklevel argument.

This causes warnings with the "default" or "module" filter to be shown once
for every offending user code line or user module instead of only once. On
python versions before 3.4, this can cause warnings to appear that were falsely
ignored before, which may be surprising especially in test suits.

Contributors

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

  • Aditya Panchal +
  • Ales Erjavec +
  • Alex Griffing
  • Alexandr Shadchin +
  • Alistair Muldal
  • Allan Haldane
  • Amit Aronovitch +
  • Andrei Kucharavy +
  • Antony Lee
  • Antti Kaihola +
  • Arne de Laat +
  • Auke Wiggers +
  • AustereCuriosity +
  • Badhri Narayanan Krishnakumar +
  • Ben North +
  • Ben Rowland +
  • Bertrand Lefebvre
  • Boxiang Sun
  • CJ Carey
  • Charles Harris
  • Christoph Gohlke
  • Daniel Ching +
  • Daniel Rasmussen +
  • Daniel Smith +
  • David Schaich +
  • Denis Alevi +
  • Devin Jeanpierre +
  • Dmitry Odzerikho
  • Dongjoon Hyun +
  • Edward Richards +
  • Ekaterina Tuzova +
  • Emilien Kofman +
  • Endolith
  • Eren Sezener +
  • Eric Moore
  • Eric Quintero +
  • Eric Wieser +
  • Erik M. Bray
  • Frederic Bastien +
  • Friedrich Dunne +
  • Gerrit Holl
  • Golnaz Irannejad +
  • Graham Markall +
  • Greg Knoll +
  • Greg Young
  • Gustavo Serra Scalet +
  • Ines Wichert +
  • Irvin Probst +
  • Jaime Fernandez
  • James Sanders +
  • Jan David Mol +
  • Jan Schlüter
  • Jeremy Tuloup +
  • John Kirkham
  • John Zwinck +
  • Jonathan Helmus
  • Joseph Fox-Rabinovitz
  • Josh Wilson +
  • Joshua Warner +
  • Julian Taylor
  • Ka Wo Chen +
  • Kamil Rytarowski +
  • Kelsey Jordahl +
  • Kevin Deldycke +
  • Khaled Ben Abdallah Okuda +
  • Lion Krischer +
  • Loïc Estève +
  • Luca Mussi +
  • Mads Ohm Larsen +
  • Manoj Kumar +
  • Mario Emmenlauer +
  • Marshall Bockrath-Vandegrift +
  • Marshall Ward +
  • Marten van Kerkwijk
  • Mathieu Lamarre +
  • Matthew Brett
  • Matthew Harrigan +
  • Matthias Geier
  • Matti Picus +
  • Meet Udeshi +
  • Michael Felt +
  • Michael Goerz +
  • Michael Martin +
  • Michael Seifert +
  • Mike Nolta +
  • Nathaniel Beaver +
  • Nathaniel J. Smith
  • Naveen Arunachalam +
  • Nick Papior
  • Nikola Forró +
  • Oleksandr Pavlyk +
  • Olivier Grisel
  • Oren Amsalem +
  • Pauli Virtanen
  • Pavel Potocek +
  • Pedro Lacerda +
  • Peter Creasey +
  • Phil Elson +
  • Philip Gura +
  • Phillip J. Wolfram +
  • Pierre de Buyl +
  • Raghav RV +
  • Ralf Gommers
  • Ray Donnelly +
  • Rehas Sachdeva
  • Rob Malouf +
  • Robert Kern
  • Samuel St-Jean
  • Sanchez Gonzalez Alvaro +
  • Saurabh Mehta +
  • Scott Sanderson +
  • Sebastian Berg
  • Shayan Pooya +
  • Shota Kawabuchi +
  • Simon Conseil
  • Simon Gibbons
  • Sorin Sbarnea +
  • Stefan van der Walt
  • Stephan Hoyer
  • Steven J Kern +
  • Stuart Archibald
  • Tadeu Manoel +
  • Takuya Akiba +
  • Thomas A Caswell
  • Tom Bird +
  • Tony Kelman +
  • Toshihiro Kamishima +
  • Valentin Valls +
  • Varun Nayyar
  • Victor Stinner +
  • Warren Weckesser
  • Wendell Smith
  • Wojtek Ruszczewski +
  • Xavier Abellan Ecija +
  • Yaroslav Halchenko
  • Yash Shah +
  • Yinon Ehrlich +
  • Yu Feng +
  • nevimov +

Pull requests merged

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

  • #4073: BUG: change real output checking to test if all imaginary parts...
  • #4619: BUG : np.sum silently drops keepdims for sub-classes of ndarray
  • #5488: ENH: add contract: optimizing numpy's einsum expression
  • #5706: ENH: make some masked array methods behave more like ndarray...
  • #5822: Allow many distributions to have a scale of 0.
  • #6054: WIP: MAINT: Add deprecation warning to views of multi-field indexes
  • #6298: Check lower base limit in base_repr.
  • #6430: Fix issues with zero-width string fields
  • #6656: ENH: usecols now accepts an int when only one column has to be...
  • #6660: Added pathlib support for several functions
  • #6872: ENH: linear interpolation of complex values in lib.interp
  • #6997: MAINT: Simplify mtrand.pyx helpers
  • #7003: BUG: Fix string copying for np.place
  • #7026: DOC: Clarify behavior in np.random.uniform
  • #7055: BUG: One Element Array Inputs Return Scalars in np.random
  • #7063: REL: Update master branch after 1.11.x branch has been made.
  • #7073: DOC: Update the 1.11.0 release notes.
  • #7076: MAINT: Update the git .mailmap file.
  • #7082: TST, DOC: Added Broadcasting Tests in test_random.py
  • #7087: BLD: fix compilation on non glibc-Linuxes
  • #7088: BUG: Have norm cast non-floating point arrays to 64-bit float...
  • #7090: ENH: Added 'doane' and 'sqrt' estimators to np.histogram in numpy.function_base
  • #7091: Revert "BLD: fix compilation on non glibc-Linuxes"
  • #7092: BLD: fix compilation on non glibc-Linuxes
  • #7099: TST: Suppressed warnings
  • #7102: MAINT: Removed conditionals that are always false in datetime_strings.c
  • #7105: DEP: Deprecate as_strided returning a writable array as default
  • #7109: DOC: update Python versions requirements in the install docs
  • #7114: MAINT: Fix typos in docs
  • #7116: TST: Fixed f2py test for win32 virtualenv
  • #7118: TST: Fixed f2py test for non-versioned python executables
  • #7119: BUG: Fixed mingw.lib error
  • #7125: DOC: Updated documentation wording and examples for np.percentile.
  • #7129: BUG: Fixed 'midpoint' interpolation of np.percentile in odd cases.
  • #7131: Fix setuptools sdist
  • #7133: ENH: savez: temporary file alongside with target file and improve...
  • #7134: MAINT: Fix some typos in a code string and comments
  • #7141: BUG: Unpickled void scalars should be contiguous
  • #7144: MAINT: Change call_fortran into callfortran in comments.
  • #7145: BUG: Fixed regressions in np.piecewise in ref to #5737 and #5729.
  • #7147: Temporarily disable __numpy_ufunc__
  • #7148: ENH,TST: Bump stacklevel and add tests for warnings
  • #7149: TST: Add missing suffix to temppath manager
  • #7152: BUG: mode kwargs passed as unicode to np.pad raises an exception
  • #7156: BUG: Reascertain that linspace respects ndarray subclasses in...
  • #7167: DOC: Update Wikipedia references for mtrand.pyx
  • #7171: TST: Fixed f2py test for Anaconda non-win32
  • #7174: DOC: Fix broken pandas link in release notes
  • #7177: ENH: added axis param for np.count_nonzero
  • #7178: BUG: Fix binary_repr for negative numbers
  • #7180: BUG: Fixed previous attempt to fix dimension mismatch in nanpercentile
  • #7181: DOC: Updated minor typos in function_base.py and test_function_base.py
  • #7191: DOC: add vstack, hstack, dstack reference to stack documentation.
  • #7193: MAINT: Removed supurious assert in histogram estimators
  • #7194: BUG: Raise a quieter MaskedArrayFutureWarning for mask changes.
  • #7195: STY: Drop some trailing spaces in numpy.ma.core.
  • #7196: Revert "DOC: add vstack, hstack, dstack reference to stack documentation."
  • #7197: TST: Pin virtualenv used on Travis CI.
  • #7198: ENH: Unlock the GIL for gufuncs
  • #7199: MAINT: Cleanup for histogram bin estimator selection
  • #7201: Raise IOError on not a file in python2
  • #7202: MAINT: Made iterable return a boolean
  • #7209: TST: Bump virtualenv to 14.0.6
  • #7211: DOC: Fix fmin examples
  • #7215: MAINT: Use PySlice_GetIndicesEx instead of custom reimplementation
  • #7229: ENH: implement __complex__
  • #7231: MRG: allow distributors to run custom init
  • #7232: BLD: Switch order of test for lapack_mkl and openblas_lapack
  • #7239: DOC: Removed residual merge markup from previous commit
  • #7240: Change 'pubic' to 'public'.
  • #7241: MAINT: update doc/sphinxext to numpydoc 0.6.0, and fix up some...
  • #7243: ENH: Adding support to the range keyword for estimation of the...
  • #7246: DOC: metion writeable keyword in as_strided in release notes
  • #7247: TST: Fail quickly on AppVeyor for superseded PR builds
  • #7248: DOC: remove link to documentation wiki editor from HOWTO_DOCUMENT.
  • #7250: DOC,REL: Update 1.11.0 notes.
  • #7251: BUG: only benchmark complex256 if it exists
  • #7252: Forward port a fix and enhancement from 1.11.x
  • #7253: DOC: note in h/v/dstack points users to stack/concatenate
  • #7254: BUG: Enforce dtype for randint singletons
  • #7256: MAINT: Use is None or is not None instead of == None or...
  • #7257: DOC: Fix mismatched variable names in docstrings.
  • #7258: ENH: Make numpy floor_divide and remainder agree with Python...
  • #7260: BUG/TST: Fix #7259, do not "force scalar" for already scalar...
  • #7261: Added self to mailmap
  • #7266: BUG: Segfault for classes with deceptive __len__
  • #7268: ENH: add geomspace function
  • #7274: BUG: Preserve array order in np.delete
  • #7275: DEP: Warn about assigning 'data' attribute of ndarray
  • #7276: DOC: apply_along_axis missing whitespace inserted (before colon)
  • #7278: BUG: Make returned unravel_index arrays writeable
  • #7279: TST: Fixed elements being shuffled
  • #7280: MAINT: Remove redundant trailing semicolons.
  • #7285: BUG: Make Randint Backwards Compatible with Pandas
  • #7286: MAINT: Fix typos in docs/comments of ma and polynomial modules.
  • #7292: Clarify error on repr failure in assert_equal.
  • #7294: ENH: add support for BLIS to numpy.distutils
  • #7295: DOC: understanding code and getting started section to dev doc
  • #7296: Revert part of #3907 which incorrectly propogated MaskedArray...
  • #7299: DOC: Fix mismatched variable names in docstrings.
  • #7300: DOC: dev: stop recommending keeping local master updated with...
  • #7301: DOC: Update release notes
  • #7305: BUG: Remove data race in mtrand: two threads could mutate the...
  • #7307: DOC: Missing some characters in link.
  • #7308: BUG: Incrementing the wrong reference on return
  • #7310: STY: Fix GitHub rendering of ordered lists >9
  • #7311: ENH: Make _pointer_type_cache functional
  • #7313: DOC: corrected grammatical error in quickstart doc
  • #7325: BUG, MAINT: Improve fromnumeric.py interface for downstream compatibility
  • #7328: DEP: Deprecated using a float index in linspace
  • #7331: Add comment, TST: fix MemoryError on win32
  • #7332: Check for no solution in np.irr Fixes #6744
  • #7338: TST: Install pytz in the CI.
  • #7340: DOC: Fixed math rendering in tensordot docs.
  • #7341: TST: Add test for #6469
  • #7344: DOC: Fix more typos in docs and comments.
  • #7346: Generalized flip
  • #7347: ENH Generalized rot90
  • #7348: Maint: Removed extra space from ureduce
  • #7349: MAINT: Hide nan warnings for masked internal MA computations
  • #7350: BUG: MA ufuncs should set mask to False, not array([False])
  • #7351: TST: Fix some MA tests to avoid looking at the .data attribute
  • #7358: BUG: pull request related to the issue #7353
  • #7359: Update 7314, DOC: Clarify valid integer range for random.seed...
  • #7361: MAINT: Fix copy and paste oversight.
  • #7363: ENH: Make no unshare mask future warnings less noisy
  • #7366: TST: fix #6542, add tests to check non-iterable argument raises...
  • #7373: ENH: Add bitwise_and identity
  • #7378: added NumPy logo and separator
  • #7382: MAINT: cleanup np.average
  • #7385: DOC: note about wheels / windows wheels for pypi
  • #7386: Added label icon to Travis status
  • #7397: BUG: incorrect type for objects whose __len__ fails
  • #7398: DOC: fix typo
  • #7404: Use PyMem_RawMalloc on Python 3.4 and newer
  • #7406: ENH ufunc called on memmap return a ndarray
  • #7407: BUG: Fix decref before incref for in-place accumulate
  • #7410: DOC: add nanprod to the list of math routines
  • #7414: Tweak corrcoef
  • #7415: DOC: Documention fixes
  • #7416: BUG: Incorrect handling of range in histogram with automatic...
  • #7418: DOC: Minor typo fix, hermefik -> hermefit.
  • #7421: ENH: adds np.nancumsum and np.nancumprod
  • #7423: BUG: Ongoing fixes to PR#7416
  • #7430: DOC: Update 1.11.0-notes.
  • #7433: MAINT: FutureWarning for changes to np.average subclass handling
  • #7437: np.full now defaults to the filling value's dtype.
  • #7438: Allow rolling multiple axes at the same time.
  • #7439: BUG: Do not try sequence repeat unless necessary
  • #7442: MANT: Simplify diagonal length calculation logic
  • #7445: BUG: reference count leak in bincount, fixes #6805
  • #7446: DOC: ndarray typo fix
  • #7447: BUG: scalar integer negative powers gave wrong results.
  • #7448: DOC: array "See also" link to full and full_like instead of fill
  • #7456: BUG: int overflow in reshape, fixes #7455, fixes #7293
  • #7463: BUG: fix array too big error for wide dtypes.
  • #7466: BUG: segfault inplace object reduceat, fixes #7465
  • #7468: BUG: more on inplace reductions, fixes #615
  • #7469: MAINT: Update git .mailmap
  • #7472: MAINT: Update .mailmap.
  • #7477: MAINT: Yet more .mailmap updates for recent contributors.
  • #7481: BUG: Fix segfault in PyArray_OrderConverter
  • #7482: BUG: Memory Leak in _GenericBinaryOutFunction
  • #7489: Faster real_if_close.
  • #7491: DOC: Update subclassing doc regarding downstream compatibility
  • #7496: BUG: don't use pow for integer power ufunc loops.
  • #7504: DOC: remove "arr" from keepdims docstrings
  • #7505: MAIN: fix to #7382, make scl in np.average writeable
  • #7507: MAINT: Remove nose.SkipTest import.
  • #7508: DOC: link frompyfunc and vectorize
  • #7511: numpy.power(0, 0) should return 1
  • #7515: BUG: MaskedArray.count treats negative axes incorrectly
  • #7518: BUG: Extend glibc complex trig functions blacklist to glibc <...
  • #7521: DOC: rephrase writeup of memmap changes
  • #7522: BUG: Fixed iteration over additional bad commands
  • #7526: DOC: Removed an extra :const:
  • #7529: BUG: Floating exception with invalid axis in np.lexsort
  • #7534: MAINT: Update setup.py to reflect supported python versions.
  • #7536: MAINT: Always use PyCapsule instead of PyCObject in mtrand.pyx
  • #7539: MAINT: Cleanup of random stuff
  • #7549: BUG: allow graceful recovery for no Liux compiler
  • #7562: BUG: Fix test_from_object_array_unicode (test_defchararray.TestBasic)…
  • #7565: BUG: Fix test_ctypeslib and test_indexing for debug interpreter
  • #7566: MAINT: use manylinux1 wheel for cython
  • #7568: Fix a false positive OverflowError in Python 3.x when value above...
  • #7579: DOC: clarify purpose of Attributes section
  • #7584: BUG: fixes #7572, percent in path
  • #7586: Make np.ma.take works on scalars
  • #7587: BUG: linalg.norm(): Don't convert object arrays to float
  • #7598: Cast array size to int64 when loading from archive
  • #7602: DOC: Remove isreal and iscomplex from ufunc list
  • #7605: DOC: fix incorrect Gamma distribution parameterization comments
  • #7609: BUG: Fix TypeError when raising TypeError
  • #7611: ENH: expose test runner raise_warnings option
  • #7614: BLD: Avoid using os.spawnve in favor of os.spawnv in exec_command
  • #7618: BUG: distance arg of np.gradient must be scalar, fix docstring
  • #7626: DOC: RST definition list fixes
  • #7627: MAINT: unify tup processing, move tup use to after all PyTuple_SetItem...
  • #7630: MAINT: add ifdef around PyDictProxy_Check macro
  • #7631: MAINT: linalg: fix comment, simplify math
  • #7634: BLD: correct C compiler customization in system_info.py Closes...
  • #7635: BUG: ma.median alternate fix for #7592
  • #7636: MAINT: clean up testing.assert_raises_regexp, 2.6-specific code...
  • #7637: MAINT: clearer exception message when importing multiarray fails.
  • #7639: TST: fix a set of test errors in master.
  • #7643: DOC : minor changes to linspace docstring
  • #7651: BUG: one to any power is still 1. Broken edgecase for int arrays
  • #7655: BLD: Remove Intel compiler flag -xSSE4.2
  • #7658: BUG: fix incorrect printing of 1D masked arrays
  • #7659: BUG: Temporary fix for str(mvoid) for object field types
  • #7664: BUG: Fix unicode with byte swap transfer and copyswap
  • #7667: Restore histogram consistency
  • #7668: ENH: Do not check the type of module.__dict__ explicit in test.
  • #7669: BUG: boolean assignment no GIL release when transfer needs API
  • #7673: DOC: Create Numpy 1.11.1 release notes.
  • #7675: BUG: fix handling of right edge of final bin.
  • #7678: BUG: Fix np.clip bug NaN handling for Visual Studio 2015
  • #7679: MAINT: Fix up C++ comment in arraytypes.c.src.
  • #7681: DOC: Update 1.11.1 release notes.
  • #7686: ENH: Changing FFT cache to a bounded LRU cache
  • #7688: DOC: fix broken genfromtxt examples in user guide. Closes gh-7662.
  • #7689: BENCH: add correlate/convolve benchmarks.
  • #7696: DOC: update wheel build / upload instructions
  • #7699: BLD: preserve library order
  • #7704: ENH: Add bits attribute to np.finfo
  • #7712: BUG: Fix race condition with new FFT cache
  • #7715: BUG: Remove memory leak in np.place
  • #7719: BUG: Fix segfault in np.random.shuffle for arrays of different...
  • #7723: Change mkl_info.dir_env_var from MKL to MKLROOT
  • #7727: DOC: Corrections in Datetime Units-arrays.datetime.rst
  • #7729: DOC: fix typo in savetxt docstring (closes #7620)
  • #7733: Update 7525, DOC: Fix order='A' docs of np.array.
  • #7734: Update 7542, ENH: Add polyrootval to numpy.polynomial
  • #7735: BUG: fix issue on OS X with Python 3.x where npymath.ini was...
  • #7739: DOC: Mention the changes of #6430 in the release notes.
  • #7740: DOC: add reference to poisson rng
  • #7743: Update 7476, DEP: deprecate Numeric-style typecodes, closes #2148
  • #7744: DOC: Remove "ones_like" from ufuncs list (it is not)
  • #7746: DOC: Clarify the effect of rcond in numpy.linalg.lstsq.
  • #7747: Update 7672, BUG: Make sure we don't divide by zero
  • #7748: DOC: Update float32 mean example in docstring
  • #7754: Update 7612, ENH: Add broadcast.ndim to match code elsewhere.
  • #7757: Update 7175, BUG: Invalid read of size 4 in PyArray_FromFile
  • #7759: BUG: Fix numpy.i support for numpy API < 1.7.
  • #7760: ENH: Make assert_almost_equal & assert_array_almost_equal consistent.
  • #7766: fix an English typo
  • #7771: DOC: link geomspace from logspace
  • #7773: DOC: Remove a redundant the
  • #7777: DOC: Update Numpy 1.11.1 release notes.
  • #7785: DOC: update wheel building procedure for release
  • #7789: MRG: add note of 64-bit wheels on Windows
  • #7791: f2py.compile issues (#7683)
  • #7799: "lambda" is not allowed to use as keyword arguments in a sample...
  • #7803: BUG: interpret 'c' PEP3118/struct type as 'S1'.
  • #7807: DOC: Misplaced parens in formula
  • #7817: BUG: Make sure npy_mul_with_overflow_ detects overflow.
  • #7818: numpy/distutils/misc_util.py fix for #7809: check that _tmpdirs...
  • #7820: MAINT: Allocate fewer bytes for empty arrays.
  • #7823: BUG: Fixed masked array behavior for scalar inputs to np.ma.atleast_*d
  • #7834: DOC: Added an example
  • #7839: Pypy fixes
  • #7840: Fix ATLAS version detection
  • #7842: Fix versionadded tags
  • #7848: MAINT: Fix remaining uses of deprecated Python imp module.
  • #7853: BUG: Make sure numpy globals keep identity after reload.
  • #7863: ENH: turn quicksort into introsort
  • #7866: Document runtests extra argv
  • #7871: BUG: handle introsort depth limit properly
  • #7879: DOC: fix typo in documentation of loadtxt (closes #7878)
  • #7885: Handle NetBSD specific <sys/endian.h>
  • #7889: DOC: #7881. Fix link to record arrays
  • #7894: fixup-7790, BUG: construct ma.array from np.array which contains...
  • #7898: Spelling and grammar fix.
  • #7903: BUG: fix float16 type not being called due to wrong ordering
  • #7908: BLD: Fixed detection for recent MKL versions
  • #7911: BUG: fix for issue#7835 (ma.median of 1d)
  • #7912: ENH: skip or avoid gc/objectmodel differences btwn pypy and cpython
  • #7918: ENH: allow numpy.apply_along_axis() to work with ndarray subclasses
  • #7922: ENH: Add ma.convolve and ma.correlate for #6458
  • #7925: Monkey-patch _msvccompile.gen_lib_option like any other compilators
  • #7931: BUG: Check for HAVE_LDOUBLE_DOUBLE_DOUBLE_LE in npy_math_complex.
  • #7936: ENH: improve duck typing inside iscomplexobj
  • #7937: BUG: Guard against buggy comparisons in generic quicksort.
  • #7938: DOC: add cbrt to math summary page
  • #7941: BUG: Make sure numpy globals keep identity after reload.
  • #7943: DOC: #7927. Remove deprecated note for memmap relevant for Python...
  • #7952: BUG: Use keyword arguments to initialize Extension base class.
  • #7956: BLD: remove __NUMPY_SETUP__ from builtins at end of setup.py
  • #7963: BUG: MSVCCompiler grows 'lib' & 'include' env strings exponentially.
  • #7965: BUG: cannot modify tuple after use
  • #7976: DOC: Fixed documented dimension of return value
  • #7977: DOC: Create 1.11.2 release notes.
  • #7979: DOC: Corrected allowed keywords in add_(installed_)library
  • #7980: ENH: Add ability to runtime select ufunc loops, add AVX2 integer...
  • #7985: Rebase 7763, ENH: Add new warning suppression/filtering context
  • #7987: DOC: See also np.load and np.memmap in np.lib.format.open_memmap
  • #7988: DOC: Include docstring for cbrt, spacing and fabs in documentation
  • #7999: ENH: add inplace cases to fast ufunc loop macros
  • #8006: DOC: Update 1.11.2 release notes.
  • #8008: MAINT: Remove leftover imp module imports.
  • #8009: DOC: Fixed three typos in the c-info.ufunc-tutorial
  • #8011: DOC: Update 1.11.2 release notes.
  • #8014: BUG: Fix fid.close() to use os.close(fid)
  • #8016: BUG: Fix numpy.ma.median.
  • #8018: BUG: Fixes return for np.ma.count if keepdims is True and axis...
  • #8021: DOC: change all non-code instances of Numpy to NumPy
  • #8027: ENH: Add platform indepedent lib dir to PYTHONPATH
  • #8028: DOC: Update 1.11.2 release notes.
  • #8030: BUG: fix np.ma.median with only one non-masked value and an axis...
  • #8038: MAINT: Update error message in rollaxis.
  • #8040: Update add_newdocs.py
  • #8042: BUG: core: fix bug in NpyIter buffering with discontinuous arrays
  • #8045: DOC: Update 1.11.2 release notes.
  • #8050: remove refcount semantics, now a.resize() almost always requires...
  • #8051: Clear signaling NaN exceptions
  • #8054: ENH: add signature argument to vectorize for vectorizing like...
  • #8057: BUG: lib: Simplify (and fix) pad's handling of the pad_width
  • #8061: BUG : financial.pmt modifies input (issue #8055)
  • #8064: MAINT: Add PMIP files to .gitignore
  • #8065: BUG: Assert fromfile ending earlier in pyx_processing
  • #8066: BUG, TST: Fix python3-dbg bug in Travis script
  • #8071: MAINT: Add Tempita to randint helpers
  • #8075: DOC: Fix description of isinf in nan_to_num
  • #8080: BUG: non-integers can end up in dtype offsets
  • #8081: Update outdated Nose URL to nose.readthedocs.io
  • #8083: ENH: Deprecation warnings for / integer division when running...
  • #8084: DOC: Fix erroneous return type description for np.roots.
  • #8087: BUG: financial.pmt modifies input #8055
  • #8088: MAINT: Remove duplicate randint helpers code.
  • #8093: MAINT: fix assert_raises_regex when used as a context manager
  • #8096: ENH: Vendorize tempita.
  • #8098: DOC: Enhance description/usage for np.linalg.eig*h
  • #8103: Pypy fixes
  • #8104: Fix test code on cpuinfo's main function
  • #8107: BUG: Fix array printing with precision=0.
  • #8109: Fix bug in ravel_multi_index for big indices (Issue #7546)
  • #8110: BUG: distutils: fix issue with rpath in fcompiler/gnu.py
  • #8111: ENH: Add a tool for release authors and PRs.
  • #8112: DOC: Fix "See also" links in linalg.
  • #8114: BUG: core: add missing error check after PyLong_AsSsize_t
  • #8121: DOC: Improve histogram2d() example.
  • #8122: BUG: Fix broken pickle in MaskedArray when dtype is object (Return...
  • #8124: BUG: Fixed build break
  • #8125: Rebase, BUG: Fixed deepcopy of F-order object arrays.
  • #8127: BUG: integers to a negative integer powers should error.
  • #8141: improve configure checks for broken systems
  • #8142: BUG: np.ma.mean and var should return scalar if no mask
  • #8148: BUG: import full module path in npy_load_module
  • #8153: MAINT: Expose void-scalar "base" attribute in python
  • #8156: DOC: added example with empty indices for a scalar, #8138
  • #8160: BUG: fix _array2string for structured array (issue #5692)
  • #8164: MAINT: Update mailmap for NumPy 1.12.0
  • #8165: Fixup 8152, BUG: assert_allclose(..., equal_nan=False) doesn't...
  • #8167: Fixup 8146, DOC: Clarify when PyArray_{Max, Min, Ptp} return...
  • #8168: DOC: Minor spelling fix in genfromtxt() docstring.
  • #8173: BLD: Enable build on AIX
  • #8174: DOC: warn that dtype.descr is only for use in PEP3118
  • #8177: MAINT: Add python 3.6 support to suppress_warnings
  • #8178: MAINT: Fix ResourceWarning new in Python 3.6.
  • #8180: FIX: protect stolen ref by PyArray_NewFromDescr in array_empty
  • #8181: ENH: Improve announce to find github squash-merge commits.
  • #8182: MAINT: Update .mailmap
  • #8183: MAINT: Ediff1d performance
  • #8184: MAINT: make assert_allclose behavior on nans match pre 1.12
  • #8188: DOC: 'highest' is exclusive for randint()
  • #8189: BUG: setfield should raise if arr is not writeable
  • #8190: ENH: Add a float_power function with at least float64 precision.
  • #8197: DOC: Add missing arguments to np.ufunc.outer
  • #8198: DEP: Deprecate the keepdims argument to accumulate
  • #8199: MAINT: change path to env in distutils.system_info. Closes gh-8195.
  • #8200: BUG: Fix structured array format functions
  • #8202: ENH: specialize name of dev package by interpreter
  • #8205: DOC: change development instructions from SSH to HTTPS access.
  • #8216: DOC: Patch doc errors for atleast_nd and frombuffer
  • #8218: BUG: ediff1d should return subclasses
  • #8219: DOC: Turn SciPy references into links.
  • #8222: ENH: Make numpy.mean() do more precise computation
  • #8227: BUG: Better check for invalid bounds in np.random.uniform.
  • #8231: ENH: Refactor numpy ** operators for numpy scalar integer powers
  • #8234: DOC: Clarified when a copy is made in numpy.asarray
  • #8236: DOC: Fix documentation pull requests.
  • #8238: MAINT: Update pavement.py
  • #8239: ENH: Improve announce tool.
  • #8240: REL: Prepare for 1.12.x branch
  • #8243: BUG: Update operator ** tests for new behavior.
  • #8246: REL: Reset strides for RELAXED_STRIDE_CHECKING for 1.12 releases.
  • #8265: BUG: np.piecewise not working for scalars
  • #8272: TST: Path test should resolve symlinks when comparing
  • #8282: DOC: Update 1.12.0 release notes.
  • #8286: BUG: Fix pavement.py write_release_task.
  • #8296: BUG: Fix iteration over reversed subspaces in mapiter_@name@.
  • #8304: BUG: Fix PyPy crash in PyUFunc_GenericReduction.
  • #8319: BLD: blacklist powl (longdouble power function) on OS X.
  • #8320: BUG: do not link to Accelerate if OpenBLAS, MKL or BLIS are found.
  • #8322: BUG: fixed kind specifications for parameters
  • #8336: BUG: fix packbits and unpackbits to correctly handle empty arrays
  • #8338: BUG: fix test_api test that fails intermittently in python 3
  • #8339: BUG: Fix ndarray.tofile large file corruption in append mode.
  • #8359: BUG: Fix suppress_warnings (again) for Python 3.6.
  • #8372: BUG: Fixes for ma.median and nanpercentile.
  • #8373: BUG: correct letter case
  • #8379: DOC: Update 1.12.0-notes.rst.
  • #8390: ENH: retune apply_along_axis nanmedian cutoff in 1.12
  • #8391: DEP: Fix escaped string characters deprecated in Python 3.6.
  • #8394: DOC: create 1.11.3 release notes.
  • #8399: BUG: Fix author search in announce.py
  • #8402: DOC, MAINT: Update 1.12.0 notes and mailmap.
  • #8418: BUG: Fix ma.median even elements for 1.12
  • #8424: DOC: Fix tools and release notes to be more markdown compatible.
  • #8427: BUG: Add a lock to assert_equal and other testing functions
  • #8431: BUG: Fix apply_along_axis() for when func1d() returns a non-ndarray.
  • #8432: BUG: Let linspace accept input that has an array_interface.
  • #8437: TST: Update 3.6-dev tests to 3.6 after Python final release.
  • #8439: DOC: Update 1.12.0 release notes.

Checksums

MD5

82ad93360815a0d60ee4751007d210d2  numpy-1.12.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
0de61873b25f92625650d5212279951f  numpy-1.12.0rc2-cp27-cp27m-manylinux1_i686.whl
cbf1773199bec8d8727778d4dca26adb  numpy-1.12.0rc2-cp27-cp27m-manylinux1_x86_64.whl
616131af6503eb9f095f4e9ea3e3c296  numpy-1.12.0rc2-cp27-cp27mu-manylinux1_i686.whl
584ebbe20c3a2004985e43004dfc6aa5  numpy-1.12.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
b1b5af3bbf40d2d11972f21d34fe444a  numpy-1.12.0rc2-cp27-none-win32.whl
4e32ceb5b478b2413b285bb7597724a6  numpy-1.12.0rc2-cp27-none-win_amd64.whl
509da913134f1d896f04085e3b51dae5  numpy-1.12.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
1428174653ea7a25682fe9e743e803fd  numpy-1.12.0rc2-cp34-cp34m-manylinux1_i686.whl
57a8fee2c04a4ce5a7f365fc4b81806b  numpy-1.12.0rc2-cp34-cp34m-manylinux1_x86_64.whl
30adf7629bf2a21394e9941eb6554be9  numpy-1.12.0rc2-cp34-none-win32.whl
f04cbe4441be9cc66003b319264f30b1  numpy-1.12.0rc2-cp34-none-win_amd64.whl
fa58258fa10b06df8aae99f6114bc6a4  numpy-1.12.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
d666865fa30d6843977be9a67c7e8688  numpy-1.12.0rc2-cp35-cp35m-manylinux1_i686.whl
aa64beca14e473ca6ef6652abfb37ac3  numpy-1.12.0rc2-cp35-cp35m-manylinux1_x86_64.whl
320ba3c9eb8c9c83527d12362cb3dced  numpy-1.12.0rc2-cp35-none-win32.whl
15f9f081956b9f1f38e36387a63814f7  numpy-1.12.0rc2-cp35-none-win_amd64.whl
17e39403d560cddf67bd3b0b08dfd3a0  numpy-1.12.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
8ce7be07a90a1e88d4c8c23136c2a723  numpy-1.12.0rc2-cp36-cp36m-manylinux1_i686.whl
8fc79d2bf3ea88faac44bb278d212c83  numpy-1.12.0rc2-cp36-cp36m-manylinux1_x86_64.whl
0b18800c06e2ee3587111765ed23d1b9  numpy-1.12.0rc2-cp36-none-win32.whl
64bd27a70ce7f944c981471e2dcab929  numpy-1.12.0rc2-cp36-none-win_amd64.whl
c4f3ce25fa384c7befec65153c126fac  numpy-1.12.0rc2.tar.gz
91e440255f24c815b0c2670efa548b57  numpy-1.12.0rc2.zip

SHA256

eedc6b685cd5ccd7a4dd831119d99812434eed1e3f4addca6505b6d44d7d4b4e  numpy-1.12.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
9a06ba7116485b652d693e80a8671660c615650800549d7f5f70f91723dd9ce2  numpy-1.12.0rc2-cp27-cp27m-manylinux1_i686.whl
b95d2545ba45975a3e3bdf44b002b64d2c7394b1a1213e2f6dbb47ad80761af6  numpy-1.12.0rc2-cp27-cp27m-manylinux1_x86_64.whl
e15fd48c1fd78af6d9d1e123a52b1c00709ca2f43d44dc429316443d0839daef  numpy-1.12.0rc2-cp27-cp27mu-manylinux1_i686.whl
37d92785d31539289e1d21e267524b1474325f2751237b6dc7b9f0d702ce0c24  numpy-1.12.0rc2-cp27-cp27mu-manylinux1_x86_64.whl
24e2e3971c215e29a6de6c3da123a720afc2b0261df4aa2a4f5fed52b8e99e4e  numpy-1.12.0rc2-cp27-none-win32.whl
07294fd423318aeb1fe366548bb7a6e555d8dd8d3cd7a20136651964c7d1428a  numpy-1.12.0rc2-cp27-none-win_amd64.whl
2f40555a474fa591de7927877ed608d393e8eb215ecd93704a946bef51faef17  numpy-1.12.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
7972529756f450f7e521eb8cebad0b62fc5d28ad9de0bf1426f1ae893a14fe0d  numpy-1.12.0rc2-cp34-cp34m-manylinux1_i686.whl
567a3e161783a00b39c9d0282f92706e5b17b37eaaf14e8cd01ee8d7b8c8c77d  numpy-1.12.0rc2-cp34-cp34m-manylinux1_x86_64.whl
233008e52a632d43efed8784cec7559cc8c3bfa3398555ef38db93db1418ab48  numpy-1.12.0rc2-cp34-none-win32.whl
de321c2e937519b6435b561ed59b5fa3aa50552e9c6b4bbaa41d7f188f723e14  numpy-1.12.0rc2-cp34-none-win_amd64.whl
3f460671d60f6e41c7fe5edaeb2d0d371afa1d6a5ae93e054b37ed0c8b4786f0  numpy-1.12.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
43214a88a37c8a27b037b1d737e725572d60552592d787a3c3262b9c8a254cd0  numpy-1.12.0rc2-cp35-cp35m-manylinux1_i686.whl
706f98941416243fa943921466d2efd683759e5707780eea55db92cc7082e0d0  numpy-1.12.0rc2-cp35-cp35m-manylinux1_x86_64.whl
0d4343a68aea038b63bbf861e4be55589e75a8d4fa06caffc4d5e33dc07a135a  numpy-1.12.0rc2-cp35-none-win32.whl
b65486d6ebbb21fc58acdb42dd330e05c6c447b0109e16ecc22feac58c9f2828  numpy-1.12.0rc2-cp35-none-win_amd64.whl
7ed894e458c0c927b3b5fcb23a8a6d0288fda1e6f9072b49aa616bca9a9feba0  numpy-1.12.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
df7c44742cb3bbbbf36538063459f90688a26023310396cd75170cebc3fec367  numpy-1.12.0rc2-cp36-cp36m-manylinux1_i686.whl
aaf72bccb7f2916ddd5dfe61da7f01d3cdf495429032d266d23d7dbe999b4b64  numpy-1.12.0rc2-cp36-cp36m-manylinux1_x86_64.whl
30c8e1e2bf0d03275ee013e4bf9606f17797ea731a399f4c6447f6a57a180372  numpy-1.12.0rc2-cp36-none-win32.whl
384d2b0ad5212912450580aa9d898b0ebbb37ec219b2bbf3f84654bd1fb20d01  numpy-1.12.0rc2-cp36-none-win_amd64.whl
ce7baad2f47f2106ec0f76e188000953d0c835f6423ba235e6b0a4dff2b85039  numpy-1.12.0rc2.tar.gz
8bd3890f7d770c989a307bba4ef9d0bdf7c859cfbb9975667c7d9bbd4729b2d8  numpy-1.12.0rc2.zip
numpy -

Published by charris almost 8 years ago

NumPy 1.12.0 Release Notes

This release supports Python 2.7 and 3.4 - 3.6.

Highlights

The NumPy 1.12.0 release contains a large number of fixes and improvements, but
few that stand out above all others. That makes picking out the highlights
somewhat arbitrary but the following may be of particular interest or indicate
areas likely to have future consequences.

  • Order of operations in np.einsum can now be optimized for large speed improvements.
  • New signature argument to np.vectorize for vectorizing with core dimensions.
  • The keepdims argument was added to many functions.
  • New context manager for testing warnings
  • Support for BLIS in numpy.distutils
  • Much improved support for PyPy (not yet finished)

Dropped Support

  • Support for Python 2.6, 3.2, and 3.3 has been dropped.

Added Support

  • Support for PyPy 2.7 v5.6.0 has been added. While not complete (nditer
    updateifcopy is not supported yet), this is a milestone for PyPy's
    C-API compatibility layer.

Build System Changes

  • Library order is preserved, instead of being reordered to match that of
    the directories.

Deprecations

Assignment of ndarray object's data attribute

Assigning the 'data' attribute is an inherently unsafe operation as pointed
out in gh-7083. Such a capability will be removed in the future.

Unsafe int casting of the num attribute in linspace

np.linspace now raises DeprecationWarning when num cannot be safely
interpreted as an integer.

Insufficient bit width parameter to binary_repr

If a 'width' parameter is passed into binary_repr that is insufficient to
represent the number in base 2 (positive) or 2's complement (negative) form,
the function used to silently ignore the parameter and return a representation
using the minimal number of bits needed for the form in question. Such behavior
is now considered unsafe from a user perspective and will raise an error in the
future.

Future Changes

  • In 1.13 NAT will always compare False except for NAT != NAT,
    which will be True. In short, NAT will behave like NaN
  • In 1.13 np.average will preserve subclasses, to match the behavior of most
    other numpy functions such as np.mean. In particular, this means calls which
    returned a scalar may return a 0-d subclass object instead.

Multiple-field manipulation of structured arrays

In 1.13 the behavior of structured arrays involving multiple fields will change
in two ways:

First, indexing a structured array with multiple fields (eg,
arr[['f1', 'f3']]) will return a view into the original array in 1.13,
instead of a copy. Note the returned view will have extra padding bytes
corresponding to intervening fields in the original array, unlike the copy in
1.12, which will affect code such as arr[['f1', 'f3']].view(newdtype).

Second, for numpy versions 1.6 to 1.12 assignment between structured arrays
occurs "by field name": Fields in the destination array are set to the
identically-named field in the source array or to 0 if the source does not have
a field::

>>> a = np.array([(1,2),(3,4)], dtype=[('x', 'i4'), ('y', 'i4')])
>>> b = np.ones(2, dtype=[('z', 'i4'), ('y', 'i4'), ('x', 'i4')])
>>> b[:] = a
>>> b
array([(0, 2, 1), (0, 4, 3)],
      dtype=[('z', '<i4'), ('y', '<i4'), ('x', '<i4')])

In 1.13 assignment will instead occur "by position": The Nth field of the
destination will be set to the Nth field of the source regardless of field
name. The old behavior can be obtained by using indexing to reorder the fields
before
assignment, e.g., b[['x', 'y']] = a[['y', 'x']].

Compatibility notes

DeprecationWarning to error

  • Indexing with floats raises IndexError,
    e.g., a[0, 0.0].
  • Indexing with non-integer array_like raises IndexError,
    e.g., a['1', '2']
  • Indexing with multiple ellipsis raises IndexError,
    e.g., a[..., ...].
  • Non-integers used as index values raise TypeError,
    e.g., in reshape, take, and specifying reduce axis.

FutureWarning to changed behavior

  • np.full now returns an array of the fill-value's dtype if no dtype is
    given, instead of defaulting to float.
  • np.average will emit a warning if the argument is a subclass of ndarray,
    as the subclass will be preserved starting in 1.13. (see Future Changes)

power and ** raise errors for integer to negative integer powers

The previous behavior depended on whether numpy scalar integers or numpy
integer arrays were involved.

For arrays

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers returned zero when raised to negative integer powers.

For scalars

  • Zero to negative integer powers returned least integral value.
  • Both 1, -1 to negative integer powers returned correct values.
  • The remaining integers sometimes returned zero, sometimes the
    correct float depending on the integer type combination.

All of these cases now raise a ValueError except for those integer
combinations whose common type is float, for instance uint64 and int8. It was
felt that a simple rule was the best way to go rather than have special
exceptions for the integer units. If you need negative powers, use an inexact
type.

Relaxed stride checking is the default

This will have some impact on code that assumed that F_CONTIGUOUS and
C_CONTIGUOUS were mutually exclusive and could be set to determine the
default order for arrays that are now both.

The np.percentile 'midpoint' interpolation method fixed for exact indices

The 'midpoint' interpolator now gives the same result as 'lower' and 'higher' when
the two coincide. Previous behavior of 'lower' + 0.5 is fixed.

keepdims kwarg is passed through to user-class methods

numpy functions that take a keepdims kwarg now pass the value
through to the corresponding methods on ndarray sub-classes. Previously the
keepdims keyword would be silently dropped. These functions now have
the following behavior:

  1. If user does not provide keepdims, no keyword is passed to the underlying
    method.
  2. Any user-provided value of keepdims is passed through as a keyword
    argument to the method.

This will raise in the case where the method does not support a
keepdims kwarg and the user explicitly passes in keepdims.

The following functions are changed: sum, product,
sometrue, alltrue, any, all, amax, amin,
prod, mean, std, var, nanmin, nanmax,
nansum, nanprod, nanmean, nanmedian, nanvar,
nanstd

bitwise_and identity changed

The previous identity was 1, it is now -1. See entry in Improvements_ for
more explanation.

ma.median warns and returns nan when unmasked invalid values are encountered

Similar to unmasked median the masked median ma.median now emits a Runtime
warning and returns NaN in slices where an unmasked NaN is present.

Greater consistancy in assert_almost_equal

The precision check for scalars has been changed to match that for arrays. It
is now::

abs(actual - desired) < 1.5 * 10**(-decimal)

Note that this is looser than previously documented, but agrees with the
previous implementation used in assert_array_almost_equal. Due to the
change in implementation some very delicate tests may fail that did not
fail before.

NoseTester behaviour of warnings during testing

When raise_warnings="develop" is given, all uncaught warnings will now
be considered a test failure. Previously only selected ones were raised.
Warnings which are not caught or raised (mostly when in release mode)
will be shown once during the test cycle similar to the default python
settings.

assert_warns and deprecated decorator more specific

The assert_warns function and context manager are now more specific
to the given warning category. This increased specificity leads to them
being handled according to the outer warning settings. This means that
no warning may be raised in cases where a wrong category warning is given
and ignored outside the context. Alternatively the increased specificity
may mean that warnings that were incorrectly ignored will now be shown
or raised. See also the new suppress_warnings context manager.
The same is true for the deprecated decorator.

C API

No changes.

New Features

Writeable keyword argument for as_strided

np.lib.stride_tricks.as_strided now has a writeable
keyword argument. It can be set to False when no write operation
to the returned array is expected to avoid accidental
unpredictable writes.

axes keyword argument for rot90

The axes keyword argument in rot90 determines the plane in which the
array is rotated. It defaults to axes=(0,1) as in the originial function.

Generalized flip

flipud and fliplr reverse the elements of an array along axis=0 and
axis=1 respectively. The newly added flip function reverses the elements of
an array along any given axis.

  • np.count_nonzero now has an axis parameter, allowing
    non-zero counts to be generated on more than just a flattened
    array object.

BLIS support in numpy.distutils

Building against the BLAS implementation provided by the BLIS library is now
supported. See the [blis] section in site.cfg.example (in the root of
the numpy repo or source distribution).

Hook in numpy/__init__.py to run distribution-specific checks

Binary distributions of numpy may need to run specific hardware checks or load
specific libraries during numpy initialization. For example, if we are
distributing numpy with a BLAS library that requires SSE2 instructions, we
would like to check the machine on which numpy is running does have SSE2 in
order to give an informative error.

Add a hook in numpy/__init__.py to import a numpy/_distributor_init.py
file that will remain empty (bar a docstring) in the standard numpy source,
but that can be overwritten by people making binary distributions of numpy.

New nanfunctions nancumsum and nancumprod added

Nan-functions nancumsum and nancumprod have been added to
compute cumsum and cumprod by ignoring nans.

np.interp can now interpolate complex values

np.lib.interp(x, xp, fp) now allows the interpolated array fp
to be complex and will interpolate at complex128 precision.

New polynomial evaluation function polyvalfromroots added

The new function polyvalfromroots evaluates a polynomial at given points
from the roots of the polynomial. This is useful for higher order polynomials,
where expansion into polynomial coefficients is inaccurate at machine
precision.

New array creation function geomspace added

The new function geomspace generates a geometric sequence. It is similar
to logspace, but with start and stop specified directly:
geomspace(start, stop) behaves the same as
logspace(log10(start), log10(stop)).

New context manager for testing warnings

A new context manager suppress_warnings has been added to the testing
utils. This context manager is designed to help reliably test warnings.
Specifically to reliably filter/ignore warnings. Ignoring warnings
by using an "ignore" filter in Python versions before 3.4.x can quickly
result in these (or similar) warnings not being tested reliably.

The context manager allows to filter (as well as record) warnings similar
to the catch_warnings context, but allows for easier specificity.
Also printing warnings that have not been filtered or nesting the
context manager will work as expected. Additionally, it is possible
to use the context manager as a decorator which can be useful when
multiple tests give need to hide the same warning.

New masked array functions ma.convolve and ma.correlate added

These functions wrapped the non-masked versions, but propagate through masked
values. There are two different propagation modes. The default causes masked
values to contaminate the result with masks, but the other mode only outputs
masks if there is no alternative.

New float_power ufunc

The new float_power ufunc is like the power function except all
computation is done in a minimum precision of float64. There was a long
discussion on the numpy mailing list of how to treat integers to negative
integer powers and a popular proposal was that the __pow__ operator should
always return results of at least float64 precision. The float_power
function implements that option. Note that it does not support object arrays.

np.loadtxt now supports a single integer as usecol argument

Instead of using usecol=(n,) to read the nth column of a file
it is now allowed to use usecol=n. Also the error message is
more user friendly when a non-integer is passed as a column index.

Improved automated bin estimators for histogram

Added 'doane' and 'sqrt' estimators to histogram via the bins
argument. Added support for range-restricted histograms with automated
bin estimation.

np.roll can now roll multiple axes at the same time

The shift and axis arguments to roll are now broadcast against each
other, and each specified axis is shifted accordingly.

The __complex__ method has been implemented for the ndarrays

Calling complex() on a size 1 array will now cast to a python
complex.

pathlib.Path objects now supported

The standard np.load, np.save, np.loadtxt, np.savez, and similar
functions can now take pathlib.Path objects as an argument instead of a
filename or open file object.

New bits attribute for np.finfo

This makes np.finfo consistent with np.iinfo which already has that
attribute.

New signature argument to np.vectorize

This argument allows for vectorizing user defined functions with core
dimensions, in the style of NumPy's
:ref:generalized universal functions<c-api.generalized-ufuncs>. This allows
for vectorizing a much broader class of functions. For example, an arbitrary
distance metric that combines two vectors to produce a scalar could be
vectorized with signature='(n),(n)->()'. See np.vectorize for full
details.

Emit py3kwarnings for division of integer arrays

To help people migrate their code bases from Python 2 to Python 3, the
python interpreter has a handy option -3, which issues warnings at runtime.
One of its warnings is for integer division::

$ python -3 -c "2/3"

-c:1: DeprecationWarning: classic int division

In Python 3, the new integer division semantics also apply to numpy arrays.
With this version, numpy will emit a similar warning::

$ python -3 -c "import numpy as np; np.array(2)/np.array(3)"

-c:1: DeprecationWarning: numpy: classic int division

numpy.sctypes now includes bytes on Python3 too

Previously, it included str (bytes) and unicode on Python2, but only str
(unicode) on Python3.

Improvements

bitwise_and identity changed

The previous identity was 1 with the result that all bits except the LSB were
masked out when the reduce method was used. The new identity is -1, which
should work properly on twos complement machines as all bits will be set to
one.

Generalized Ufuncs will now unlock the GIL

Generalized Ufuncs, including most of the linalg module, will now unlock
the Python global interpreter lock.

Caches in np.fft are now bounded in total size and item count

The caches in np.fft that speed up successive FFTs of the same length can no
longer grow without bounds. They have been replaced with LRU (least recently
used) caches that automatically evict no longer needed items if either the
memory size or item count limit has been reached.

Improved handling of zero-width string/unicode dtypes

Fixed several interfaces that explicitly disallowed arrays with zero-width
string dtypes (i.e. dtype('S0') or dtype('U0'), and fixed several
bugs where such dtypes were not handled properly. In particular, changed
ndarray.__new__ to not implicitly convert dtype('S0') to
dtype('S1') (and likewise for unicode) when creating new arrays.

Integer ufuncs vectorized with AVX2

If the cpu supports it at runtime the basic integer ufuncs now use AVX2
instructions. This feature is currently only available when compiled with GCC.

Order of operations optimization in np.einsum

np.einsum now supports the optimize argument which will optimize the
order of contraction. For example, np.einsum would complete the chain dot
example np.einsum(‘ij,jk,kl->il’, a, b, c) in a single pass which would
scale like N^4; however, when optimize=True np.einsum will create
an intermediate array to reduce this scaling to N^3 or effectively
np.dot(a, b).dot(c). Usage of intermediate tensors to reduce scaling has
been applied to the general einsum summation notation. See np.einsum_path
for more details.

quicksort has been changed to an introsort

The quicksort kind of np.sort and np.argsort is now an introsort which
is regular quicksort but changing to a heapsort when not enough progress is
made. This retains the good quicksort performance while changing the worst case
runtime from O(N^2) to O(N*log(N)).

ediff1d improved performance and subclass handling

The ediff1d function uses an array instead on a flat iterator for the
subtraction. When to_begin or to_end is not None, the subtraction is performed
in place to eliminate a copy operation. A side effect is that certain
subclasses are handled better, namely astropy.Quantity, since the complete
array is created, wrapped, and then begin and end values are set, instead of
using concatenate.

Improved precision of ndarray.mean for float16 arrays

The computation of the mean of float16 arrays is now carried out in float32 for
improved precision. This should be useful in packages such as scikit-learn
where the precision of float16 is adequate and its smaller footprint is
desireable.

Changes

All array-like methods are now called with keyword arguments in fromnumeric.py

Internally, many array-like methods in fromnumeric.py were being called with
positional arguments instead of keyword arguments as their external signatures
were doing. This caused a complication in the downstream 'pandas' library
that encountered an issue with 'numpy' compatibility. Now, all array-like
methods in this module are called with keyword arguments instead.

Operations on np.memmap objects return numpy arrays in most cases

Previously operations on a memmap object would misleadingly return a memmap
instance even if the result was actually not memmapped. For example,
arr + 1 or arr + arr would return memmap instances, although no memory
from the output array is memmaped. Version 1.12 returns ordinary numpy arrays
from these operations.

Also, reduction of a memmap (e.g. .sum(axis=None) now returns a numpy
scalar instead of a 0d memmap.

stacklevel of warnings increased

The stacklevel for python based warnings was increased so that most warnings
will report the offending line of the user code instead of the line the
warning itself is given. Passing of stacklevel is now tested to ensure that
new warnings will receive the stacklevel argument.

This causes warnings with the "default" or "module" filter to be shown once
for every offending user code line or user module instead of only once. On
python versions before 3.4, this can cause warnings to appear that were falsely
ignored before, which may be surprising especially in test suits.

Contributors to maintenance/1.12.x

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

  • Aditya Panchal
  • Ales Erjavec +
  • Alex Griffing
  • Alexandr Shadchin +
  • Alistair Muldal
  • Allan Haldane
  • Amit Aronovitch +
  • Andrei Kucharavy +
  • Antony Lee
  • Antti Kaihola +
  • Arne de Laat +
  • Auke Wiggers +
  • AustereCuriosity +
  • Badhri Narayanan Krishnakumar +
  • Ben North +
  • Ben Rowland +
  • Bertrand Lefebvre
  • Boxiang Sun
  • CJ Carey
  • Charles Harris
  • Christoph Gohlke
  • Daniel Ching +
  • Daniel Rasmussen +
  • Daniel Smith +
  • David Schaich +
  • Denis Alevi +
  • Devin Jeanpierre +
  • Dmitry Odzerikho
  • Dongjoon Hyun +
  • Edward Richards +
  • Ekaterina Tuzova +
  • Emilien Kofman +
  • Endolith
  • Eren Sezener +
  • Eric Moore
  • Eric Quintero +
  • Eric Wieser +
  • Erik M. Bray
  • Frederic Bastien +
  • Friedrich Dunne +
  • Gerrit Holl
  • Golnaz Irannejad +
  • Graham Markall +
  • Greg Knoll +
  • Greg Young
  • Gustavo Serra Scalet +
  • Ines Wichert +
  • Irvin Probst +
  • Jaime Fernandez
  • James Sanders +
  • Jan David Mol +
  • Jan Schlüter
  • Jeremy Tuloup +
  • John Kirkham
  • John Zwinck +
  • Jonathan Helmus
  • Joseph Fox-Rabinovitz
  • Josh Wilson +
  • Joshua Warner +
  • Julian Taylor
  • Ka Wo Chen +
  • Kamil Rytarowski +
  • Kelsey Jordahl +
  • Kevin Deldycke +
  • Khaled Ben Abdallah Okuda +
  • Lion Krischer +
  • Loïc Estève +
  • Luca Mussi +
  • Mads Ohm Larsen +
  • Manoj Kumar +
  • Mario Emmenlauer +
  • Marshall Bockrath-Vandegrift +
  • Marshall Ward +
  • Marten van Kerkwijk
  • Mathieu Lamarre +
  • Matthew Brett
  • Matthew Harrigan +
  • Matthias Geier
  • Matti Picus +
  • Meet Udeshi +
  • Michael Felt +
  • Michael Goerz +
  • Michael Martin +
  • Michael Seifert +
  • Mike Nolta +
  • Nathaniel Beaver +
  • Nathaniel J. Smith
  • Naveen Arunachalam +
  • Nick Papior
  • Nikola Forró +
  • Oleksandr Pavlyk +
  • Olivier Grisel
  • Oren Amsalem +
  • Pauli Virtanen
  • Pavel Potocek +
  • Pedro Lacerda +
  • Peter Creasey +
  • Phil Elson +
  • Philip Gura +
  • Phillip J. Wolfram +
  • Pierre de Buyl +
  • Raghav RV +
  • Ralf Gommers
  • Ray Donnelly +
  • Rehas Sachdeva
  • Rob Malouf +
  • Robert Kern
  • Samuel St-Jean
  • Sanchez Gonzalez Alvaro +
  • Saurabh Mehta +
  • Scott Sanderson +
  • Sebastian Berg
  • Shayan Pooya +
  • Shota Kawabuchi +
  • Simon Conseil
  • Simon Gibbons
  • Sorin Sbarnea +
  • Stefan van der Walt
  • Stephan Hoyer
  • Steven J Kern +
  • Stuart Archibald
  • Tadeu Manoel +
  • Takuya Akiba +
  • Thomas A Caswell
  • Tom Bird +
  • Tony Kelman +
  • Toshihiro Kamishima +
  • Valentin Valls +
  • Varun Nayyar
  • Victor Stinner +
  • Warren Weckesser
  • Wendell Smith
  • Wojtek Ruszczewski +
  • Xavier Abellan Ecija +
  • Yaroslav Halchenko
  • Yash Shah +
  • Yinon Ehrlich +
  • Yu Feng +
  • nevimov +

Pull requests merged for maintenance/1.12.x

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

  • #4073: BUG: change real output checking to test if all imaginary parts...
  • #4619: BUG : np.sum silently drops keepdims for sub-classes of ndarray
  • #5488: ENH: add contract: optimizing numpy's einsum expression
  • #5706: ENH: make some masked array methods behave more like ndarray...
  • #5822: Allow many distributions to have a scale of 0.
  • #6054: WIP: MAINT: Add deprecation warning to views of multi-field indexes
  • #6298: Check lower base limit in base_repr.
  • #6430: Fix issues with zero-width string fields
  • #6656: ENH: usecols now accepts an int when only one column has to be...
  • #6660: Added pathlib support for several functions
  • #6872: ENH: linear interpolation of complex values in lib.interp
  • #6997: MAINT: Simplify mtrand.pyx helpers
  • #7003: BUG: Fix string copying for np.place
  • #7026: DOC: Clarify behavior in np.random.uniform
  • #7055: BUG: One Element Array Inputs Return Scalars in np.random
  • #7063: REL: Update master branch after 1.11.x branch has been made.
  • #7073: DOC: Update the 1.11.0 release notes.
  • #7076: MAINT: Update the git .mailmap file.
  • #7082: TST, DOC: Added Broadcasting Tests in test_random.py
  • #7087: BLD: fix compilation on non glibc-Linuxes
  • #7088: BUG: Have norm cast non-floating point arrays to 64-bit float...
  • #7090: ENH: Added 'doane' and 'sqrt' estimators to np.histogram in numpy.function_base
  • #7091: Revert "BLD: fix compilation on non glibc-Linuxes"
  • #7092: BLD: fix compilation on non glibc-Linuxes
  • #7099: TST: Suppressed warnings
  • #7102: MAINT: Removed conditionals that are always false in datetime_strings.c
  • #7105: DEP: Deprecate as_strided returning a writable array as default
  • #7109: DOC: update Python versions requirements in the install docs
  • #7114: MAINT: Fix typos in docs
  • #7116: TST: Fixed f2py test for win32 virtualenv
  • #7118: TST: Fixed f2py test for non-versioned python executables
  • #7119: BUG: Fixed mingw.lib error
  • #7125: DOC: Updated documentation wording and examples for np.percentile.
  • #7129: BUG: Fixed 'midpoint' interpolation of np.percentile in odd cases.
  • #7131: Fix setuptools sdist
  • #7133: ENH: savez: temporary file alongside with target file and improve...
  • #7134: MAINT: Fix some typos in a code string and comments
  • #7141: BUG: Unpickled void scalars should be contiguous
  • #7144: MAINT: Change call_fortran into callfortran in comments.
  • #7145: BUG: Fixed regressions in np.piecewise in ref to #5737 and #5729.
  • #7147: Temporarily disable numpy_ufunc
  • #7148: ENH,TST: Bump stacklevel and add tests for warnings
  • #7149: TST: Add missing suffix to temppath manager
  • #7152: BUG: mode kwargs passed as unicode to np.pad raises an exception
  • #7156: BUG: Reascertain that linspace respects ndarray subclasses in...
  • #7167: DOC: Update Wikipedia references for mtrand.pyx
  • #7171: TST: Fixed f2py test for Anaconda non-win32
  • #7174: DOC: Fix broken pandas link in release notes
  • #7177: ENH: added axis param for np.count_nonzero
  • #7178: BUG: Fix binary_repr for negative numbers
  • #7180: BUG: Fixed previous attempt to fix dimension mismatch in nanpercentile
  • #7181: DOC: Updated minor typos in function_base.py and test_function_base.py
  • #7191: DOC: add vstack, hstack, dstack reference to stack documentation.
  • #7193: MAINT: Removed supurious assert in histogram estimators
  • #7194: BUG: Raise a quieter MaskedArrayFutureWarning for mask changes.
  • #7195: STY: Drop some trailing spaces in numpy.ma.core.
  • #7196: Revert "DOC: add vstack, hstack, dstack reference to stack documentation."
  • #7197: TST: Pin virtualenv used on Travis CI.
  • #7198: ENH: Unlock the GIL for gufuncs
  • #7199: MAINT: Cleanup for histogram bin estimator selection
  • #7201: Raise IOError on not a file in python2
  • #7202: MAINT: Made iterable return a boolean
  • #7209: TST: Bump virtualenv to 14.0.6
  • #7211: DOC: Fix fmin examples
  • #7215: MAINT: Use PySlice_GetIndicesEx instead of custom reimplementation
  • #7229: ENH: implement complex
  • #7231: MRG: allow distributors to run custom init
  • #7232: BLD: Switch order of test for lapack_mkl and openblas_lapack
  • #7239: DOC: Removed residual merge markup from previous commit
  • #7240: Change 'pubic' to 'public'.
  • #7241: MAINT: update doc/sphinxext to numpydoc 0.6.0, and fix up some...
  • #7243: ENH: Adding support to the range keyword for estimation of the...
  • #7246: DOC: metion writeable keyword in as_strided in release notes
  • #7247: TST: Fail quickly on AppVeyor for superseded PR builds
  • #7248: DOC: remove link to documentation wiki editor from HOWTO_DOCUMENT.
  • #7250: DOC,REL: Update 1.11.0 notes.
  • #7251: BUG: only benchmark complex256 if it exists
  • #7252: Forward port a fix and enhancement from 1.11.x
  • #7253: DOC: note in h/v/dstack points users to stack/concatenate
  • #7254: BUG: Enforce dtype for randint singletons
  • #7256: MAINT: Use is None or is not None instead of == None or...
  • #7257: DOC: Fix mismatched variable names in docstrings.
  • #7258: ENH: Make numpy floor_divide and remainder agree with Python...
  • #7260: BUG/TST: Fix #7259, do not "force scalar" for already scalar...
  • #7261: Added self to mailmap
  • #7266: BUG: Segfault for classes with deceptive len
  • #7268: ENH: add geomspace function
  • #7274: BUG: Preserve array order in np.delete
  • #7275: DEP: Warn about assigning 'data' attribute of ndarray
  • #7276: DOC: apply_along_axis missing whitespace inserted (before colon)
  • #7278: BUG: Make returned unravel_index arrays writeable
  • #7279: TST: Fixed elements being shuffled
  • #7280: MAINT: Remove redundant trailing semicolons.
  • #7285: BUG: Make Randint Backwards Compatible with Pandas
  • #7286: MAINT: Fix typos in docs/comments of ma and polynomial modules.
  • #7292: Clarify error on repr failure in assert_equal.
  • #7294: ENH: add support for BLIS to numpy.distutils
  • #7295: DOC: understanding code and getting started section to dev doc
  • #7296: Revert part of #3907 which incorrectly propogated MaskedArray...
  • #7299: DOC: Fix mismatched variable names in docstrings.
  • #7300: DOC: dev: stop recommending keeping local master updated with...
  • #7301: DOC: Update release notes
  • #7305: BUG: Remove data race in mtrand: two threads could mutate the...
  • #7307: DOC: Missing some characters in link.
  • #7308: BUG: Incrementing the wrong reference on return
  • #7310: STY: Fix GitHub rendering of ordered lists >9
  • #7311: ENH: Make _pointer_type_cache functional
  • #7313: DOC: corrected grammatical error in quickstart doc
  • #7325: BUG, MAINT: Improve fromnumeric.py interface for downstream compatibility
  • #7328: DEP: Deprecated using a float index in linspace
  • #7331: Add comment, TST: fix MemoryError on win32
  • #7332: Check for no solution in np.irr Fixes #6744
  • #7338: TST: Install pytz in the CI.
  • #7340: DOC: Fixed math rendering in tensordot docs.
  • #7341: TST: Add test for #6469
  • #7344: DOC: Fix more typos in docs and comments.
  • #7346: Generalized flip
  • #7347: ENH Generalized rot90
  • #7348: Maint: Removed extra space from ureduce
  • #7349: MAINT: Hide nan warnings for masked internal MA computations
  • #7350: BUG: MA ufuncs should set mask to False, not array([False])
  • #7351: TST: Fix some MA tests to avoid looking at the .data attribute
  • #7358: BUG: pull request related to the issue #7353
  • #7359: Update 7314, DOC: Clarify valid integer range for random.seed...
  • #7361: MAINT: Fix copy and paste oversight.
  • #7363: ENH: Make no unshare mask future warnings less noisy
  • #7366: TST: fix #6542, add tests to check non-iterable argument raises...
  • #7373: ENH: Add bitwise_and identity
  • #7378: added NumPy logo and separator
  • #7382: MAINT: cleanup np.average
  • #7385: DOC: note about wheels / windows wheels for pypi
  • #7386: Added label icon to Travis status
  • #7397: BUG: incorrect type for objects whose len fails
  • #7398: DOC: fix typo
  • #7404: Use PyMem_RawMalloc on Python 3.4 and newer
  • #7406: ENH ufunc called on memmap return a ndarray
  • #7407: BUG: Fix decref before incref for in-place accumulate
  • #7410: DOC: add nanprod to the list of math routines
  • #7414: Tweak corrcoef
  • #7415: DOC: Documention fixes
  • #7416: BUG: Incorrect handling of range in histogram with automatic...
  • #7418: DOC: Minor typo fix, hermefik -> hermefit.
  • #7421: ENH: adds np.nancumsum and np.nancumprod
  • #7423: BUG: Ongoing fixes to PR#7416
  • #7430: DOC: Update 1.11.0-notes.
  • #7433: MAINT: FutureWarning for changes to np.average subclass handling
  • #7437: np.full now defaults to the filling value's dtype.
  • #7438: Allow rolling multiple axes at the same time.
  • #7439: BUG: Do not try sequence repeat unless necessary
  • #7442: MANT: Simplify diagonal length calculation logic
  • #7445: BUG: reference count leak in bincount, fixes #6805
  • #7446: DOC: ndarray typo fix
  • #7447: BUG: scalar integer negative powers gave wrong results.
  • #7448: DOC: array "See also" link to full and full_like instead of fill
  • #7456: BUG: int overflow in reshape, fixes #7455, fixes #7293
  • #7463: BUG: fix array too big error for wide dtypes.
  • #7466: BUG: segfault inplace object reduceat, fixes #7465
  • #7468: BUG: more on inplace reductions, fixes #615
  • #7469: MAINT: Update git .mailmap
  • #7472: MAINT: Update .mailmap.
  • #7477: MAINT: Yet more .mailmap updates for recent contributors.
  • #7481: BUG: Fix segfault in PyArray_OrderConverter
  • #7482: BUG: Memory Leak in _GenericBinaryOutFunction
  • #7489: Faster real_if_close.
  • #7491: DOC: Update subclassing doc regarding downstream compatibility
  • #7496: BUG: don't use pow for integer power ufunc loops.
  • #7504: DOC: remove "arr" from keepdims docstrings
  • #7505: MAIN: fix to #7382, make scl in np.average writeable
  • #7507: MAINT: Remove nose.SkipTest import.
  • #7508: DOC: link frompyfunc and vectorize
  • #7511: numpy.power(0, 0) should return 1
  • #7515: BUG: MaskedArray.count treats negative axes incorrectly
  • #7518: BUG: Extend glibc complex trig functions blacklist to glibc <...
  • #7521: DOC: rephrase writeup of memmap changes
  • #7522: BUG: Fixed iteration over additional bad commands
  • #7526: DOC: Removed an extra :const:
  • #7529: BUG: Floating exception with invalid axis in np.lexsort
  • #7534: MAINT: Update setup.py to reflect supported python versions.
  • #7536: MAINT: Always use PyCapsule instead of PyCObject in mtrand.pyx
  • #7539: MAINT: Cleanup of random stuff
  • #7549: BUG: allow graceful recovery for no Liux compiler
  • #7562: BUG: Fix test_from_object_array_unicode (test_defchararray.TestBasic)…
  • #7565: BUG: Fix test_ctypeslib and test_indexing for debug interpreter
  • #7566: MAINT: use manylinux1 wheel for cython
  • #7568: Fix a false positive OverflowError in Python 3.x when value above...
  • #7579: DOC: clarify purpose of Attributes section
  • #7584: BUG: fixes #7572, percent in path
  • #7586: Make np.ma.take works on scalars
  • #7587: BUG: linalg.norm(): Don't convert object arrays to float
  • #7598: Cast array size to int64 when loading from archive
  • #7602: DOC: Remove isreal and iscomplex from ufunc list
  • #7605: DOC: fix incorrect Gamma distribution parameterization comments
  • #7609: BUG: Fix TypeError when raising TypeError
  • #7611: ENH: expose test runner raise_warnings option
  • #7614: BLD: Avoid using os.spawnve in favor of os.spawnv in exec_command
  • #7618: BUG: distance arg of np.gradient must be scalar, fix docstring
  • #7626: DOC: RST definition list fixes
  • #7627: MAINT: unify tup processing, move tup use to after all PyTuple_SetItem...
  • #7630: MAINT: add ifdef around PyDictProxy_Check macro
  • #7631: MAINT: linalg: fix comment, simplify math
  • #7634: BLD: correct C compiler customization in system_info.py Closes...
  • #7635: BUG: ma.median alternate fix for #7592
  • #7636: MAINT: clean up testing.assert_raises_regexp, 2.6-specific code...
  • #7637: MAINT: clearer exception message when importing multiarray fails.
  • #7639: TST: fix a set of test errors in master.
  • #7643: DOC : minor changes to linspace docstring
  • #7651: BUG: one to any power is still 1. Broken edgecase for int arrays
  • #7655: BLD: Remove Intel compiler flag -xSSE4.2
  • #7658: BUG: fix incorrect printing of 1D masked arrays
  • #7659: BUG: Temporary fix for str(mvoid) for object field types
  • #7664: BUG: Fix unicode with byte swap transfer and copyswap
  • #7667: Restore histogram consistency
  • #7668: ENH: Do not check the type of module.dict explicit in test.
  • #7669: BUG: boolean assignment no GIL release when transfer needs API
  • #7673: DOC: Create Numpy 1.11.1 release notes.
  • #7675: BUG: fix handling of right edge of final bin.
  • #7678: BUG: Fix np.clip bug NaN handling for Visual Studio 2015
  • #7679: MAINT: Fix up C++ comment in arraytypes.c.src.
  • #7681: DOC: Update 1.11.1 release notes.
  • #7686: ENH: Changing FFT cache to a bounded LRU cache
  • #7688: DOC: fix broken genfromtxt examples in user guide. Closes gh-7662.
  • #7689: BENCH: add correlate/convolve benchmarks.
  • #7696: DOC: update wheel build / upload instructions
  • #7699: BLD: preserve library order
  • #7704: ENH: Add bits attribute to np.finfo
  • #7712: BUG: Fix race condition with new FFT cache
  • #7715: BUG: Remove memory leak in np.place
  • #7719: BUG: Fix segfault in np.random.shuffle for arrays of different...
  • #7723: Change mkl_info.dir_env_var from MKL to MKLROOT
  • #7727: DOC: Corrections in Datetime Units-arrays.datetime.rst
  • #7729: DOC: fix typo in savetxt docstring (closes #7620)
  • #7733: Update 7525, DOC: Fix order='A' docs of np.array.
  • #7734: Update 7542, ENH: Add polyrootval to numpy.polynomial
  • #7735: BUG: fix issue on OS X with Python 3.x where npymath.ini was...
  • #7739: DOC: Mention the changes of #6430 in the release notes.
  • #7740: DOC: add reference to poisson rng
  • #7743: Update 7476, DEP: deprecate Numeric-style typecodes, closes #2148
  • #7744: DOC: Remove "ones_like" from ufuncs list (it is not)
  • #7746: DOC: Clarify the effect of rcond in numpy.linalg.lstsq.
  • #7747: Update 7672, BUG: Make sure we don't divide by zero
  • #7748: DOC: Update float32 mean example in docstring
  • #7754: Update 7612, ENH: Add broadcast.ndim to match code elsewhere.
  • #7757: Update 7175, BUG: Invalid read of size 4 in PyArray_FromFile
  • #7759: BUG: Fix numpy.i support for numpy API < 1.7.
  • #7760: ENH: Make assert_almost_equal & assert_array_almost_equal consistent.
  • #7766: fix an English typo
  • #7771: DOC: link geomspace from logspace
  • #7773: DOC: Remove a redundant the
  • #7777: DOC: Update Numpy 1.11.1 release notes.
  • #7785: DOC: update wheel building procedure for release
  • #7789: MRG: add note of 64-bit wheels on Windows
  • #7791: f2py.compile issues (#7683)
  • #7799: "lambda" is not allowed to use as keyword arguments in a sample...
  • #7803: BUG: interpret 'c' PEP3118/struct type as 'S1'.
  • #7807: DOC: Misplaced parens in formula
  • #7817: BUG: Make sure npy_mul_with_overflow_ detects overflow.
  • #7818: numpy/distutils/misc_util.py fix for #7809: check that _tmpdirs...
  • #7820: MAINT: Allocate fewer bytes for empty arrays.
  • #7823: BUG: Fixed masked array behavior for scalar inputs to np.ma.atleast_*d
  • #7834: DOC: Added an example
  • #7839: Pypy fixes
  • #7840: Fix ATLAS version detection
  • #7842: Fix versionadded tags
  • #7848: MAINT: Fix remaining uses of deprecated Python imp module.
  • #7853: BUG: Make sure numpy globals keep identity after reload.
  • #7863: ENH: turn quicksort into introsort
  • #7866: Document runtests extra argv
  • #7871: BUG: handle introsort depth limit properly
  • #7879: DOC: fix typo in documentation of loadtxt (closes #7878)
  • #7885: Handle NetBSD specific <sys/endian.h>
  • #7889: DOC: #7881. Fix link to record arrays
  • #7894: fixup-7790, BUG: construct ma.array from np.array which contains...
  • #7898: Spelling and grammar fix.
  • #7903: BUG: fix float16 type not being called due to wrong ordering
  • #7908: BLD: Fixed detection for recent MKL versions
  • #7911: BUG: fix for issue#7835 (ma.median of 1d)
  • #7912: ENH: skip or avoid gc/objectmodel differences btwn pypy and cpython
  • #7918: ENH: allow numpy.apply_along_axis() to work with ndarray subclasses
  • #7922: ENH: Add ma.convolve and ma.correlate for #6458
  • #7925: Monkey-patch _msvccompile.gen_lib_option like any other compilators
  • #7931: BUG: Check for HAVE_LDOUBLE_DOUBLE_DOUBLE_LE in npy_math_complex.
  • #7936: ENH: improve duck typing inside iscomplexobj
  • #7937: BUG: Guard against buggy comparisons in generic quicksort.
  • #7938: DOC: add cbrt to math summary page
  • #7941: BUG: Make sure numpy globals keep identity after reload.
  • #7943: DOC: #7927. Remove deprecated note for memmap relevant for Python...
  • #7952: BUG: Use keyword arguments to initialize Extension base class.
  • #7956: BLD: remove NUMPY_SETUP from builtins at end of setup.py
  • #7963: BUG: MSVCCompiler grows 'lib' & 'include' env strings exponentially.
  • #7965: BUG: cannot modify tuple after use
  • #7976: DOC: Fixed documented dimension of return value
  • #7977: DOC: Create 1.11.2 release notes.
  • #7979: DOC: Corrected allowed keywords in add_(installed_)library
  • #7980: ENH: Add ability to runtime select ufunc loops, add AVX2 integer...
  • #7985: Rebase 7763, ENH: Add new warning suppression/filtering context
  • #7987: DOC: See also np.load and np.memmap in np.lib.format.open_memmap
  • #7988: DOC: Include docstring for cbrt, spacing and fabs in documentation
  • #7999: ENH: add inplace cases to fast ufunc loop macros
  • #8006: DOC: Update 1.11.2 release notes.
  • #8008: MAINT: Remove leftover imp module imports.
  • #8009: DOC: Fixed three typos in the c-info.ufunc-tutorial
  • #8011: DOC: Update 1.11.2 release notes.
  • #8014: BUG: Fix fid.close() to use os.close(fid)
  • #8016: BUG: Fix numpy.ma.median.
  • #8018: BUG: Fixes return for np.ma.count if keepdims is True and axis...
  • #8021: DOC: change all non-code instances of Numpy to NumPy
  • #8027: ENH: Add platform indepedent lib dir to PYTHONPATH
  • #8028: DOC: Update 1.11.2 release notes.
  • #8030: BUG: fix np.ma.median with only one non-masked value and an axis...
  • #8038: MAINT: Update error message in rollaxis.
  • #8040: Update add_newdocs.py
  • #8042: BUG: core: fix bug in NpyIter buffering with discontinuous arrays
  • #8045: DOC: Update 1.11.2 release notes.
  • #8050: remove refcount semantics, now a.resize() almost always requires...
  • #8051: Clear signaling NaN exceptions
  • #8054: ENH: add signature argument to vectorize for vectorizing like...
  • #8057: BUG: lib: Simplify (and fix) pad's handling of the pad_width
  • #8061: BUG : financial.pmt modifies input (issue #8055)
  • #8064: MAINT: Add PMIP files to .gitignore
  • #8065: BUG: Assert fromfile ending earlier in pyx_processing
  • #8066: BUG, TST: Fix python3-dbg bug in Travis script
  • #8071: MAINT: Add Tempita to randint helpers
  • #8075: DOC: Fix description of isinf in nan_to_num
  • #8080: BUG: non-integers can end up in dtype offsets
  • #8081: Update outdated Nose URL to nose.readthedocs.io
  • #8083: ENH: Deprecation warnings for / integer division when running...
  • #8084: DOC: Fix erroneous return type description for np.roots.
  • #8087: BUG: financial.pmt modifies input #8055
  • #8088: MAINT: Remove duplicate randint helpers code.
  • #8093: MAINT: fix assert_raises_regex when used as a context manager
  • #8096: ENH: Vendorize tempita.
  • #8098: DOC: Enhance description/usage for np.linalg.eig*h
  • #8103: Pypy fixes
  • #8104: Fix test code on cpuinfo's main function
  • #8107: BUG: Fix array printing with precision=0.
  • #8109: Fix bug in ravel_multi_index for big indices (Issue #7546)
  • #8110: BUG: distutils: fix issue with rpath in fcompiler/gnu.py
  • #8111: ENH: Add a tool for release authors and PRs.
  • #8112: DOC: Fix "See also" links in linalg.
  • #8114: BUG: core: add missing error check after PyLong_AsSsize_t
  • #8121: DOC: Improve histogram2d() example.
  • #8122: BUG: Fix broken pickle in MaskedArray when dtype is object (Return...
  • #8124: BUG: Fixed build break
  • #8125: Rebase, BUG: Fixed deepcopy of F-order object arrays.
  • #8127: BUG: integers to a negative integer powers should error.
  • #8141: improve configure checks for broken systems
  • #8142: BUG: np.ma.mean and var should return scalar if no mask
  • #8148: BUG: import full module path in npy_load_module
  • #8153: MAINT: Expose void-scalar "base" attribute in python
  • #8156: DOC: added example with empty indices for a scalar, #8138
  • #8160: BUG: fix _array2string for structured array (issue #5692)
  • #8164: MAINT: Update mailmap for NumPy 1.12.0
  • #8165: Fixup 8152, BUG: assert_allclose(..., equal_nan=False) doesn't...
  • #8167: Fixup 8146, DOC: Clarify when PyArray_{Max, Min, Ptp} return...
  • #8168: DOC: Minor spelling fix in genfromtxt() docstring.
  • #8173: BLD: Enable build on AIX
  • #8174: DOC: warn that dtype.descr is only for use in PEP3118
  • #8177: MAINT: Add python 3.6 support to suppress_warnings
  • #8178: MAINT: Fix ResourceWarning new in Python 3.6.
  • #8180: FIX: protect stolen ref by PyArray_NewFromDescr in array_empty
  • #8181: ENH: Improve announce to find github squash-merge commits.
  • #8182: MAINT: Update .mailmap
  • #8183: MAINT: Ediff1d performance
  • #8184: MAINT: make assert_allclose behavior on nans match pre 1.12
  • #8188: DOC: 'highest' is exclusive for randint()
  • #8189: BUG: setfield should raise if arr is not writeable
  • #8190: ENH: Add a float_power function with at least float64 precision.
  • #8197: DOC: Add missing arguments to np.ufunc.outer
  • #8198: DEP: Deprecate the keepdims argument to accumulate
  • #8199: MAINT: change path to env in distutils.system_info. Closes gh-8195.
  • #8200: BUG: Fix structured array format functions
  • #8202: ENH: specialize name of dev package by interpreter
  • #8205: DOC: change development instructions from SSH to HTTPS access.
  • #8216: DOC: Patch doc errors for atleast_nd and frombuffer
  • #8218: BUG: ediff1d should return subclasses
  • #8219: DOC: Turn SciPy references into links.
  • #8222: ENH: Make numpy.mean() do more precise computation
  • #8227: BUG: Better check for invalid bounds in np.random.uniform.
  • #8231: ENH: Refactor numpy ** operators for numpy scalar integer powers
  • #8234: DOC: Clarified when a copy is made in numpy.asarray
  • #8236: DOC: Fix documentation pull requests.
  • #8238: MAINT: Update pavement.py
  • #8239: ENH: Improve announce tool.
  • #8240: REL: Prepare for 1.12.x branch
  • #8243: BUG: Update operator ** tests for new behavior.
  • #8246: REL: Reset strides for RELAXED_STRIDE_CHECKING for 1.12 releases.
  • #8265: BUG: np.piecewise not working for scalars
  • #8272: TST: Path test should resolve symlinks when comparing
  • #8282: DOC: Update 1.12.0 release notes.
  • #8286: BUG: Fix pavement.py write_release_task.
  • #8296: BUG: Fix iteration over reversed subspaces in mapiter_@name@.
  • #8304: BUG: Fix PyPy crash in PyUFunc_GenericReduction.
  • #8319: BLD: blacklist powl (longdouble power function) on OS X.
  • #8320: BUG: do not link to Accelerate if OpenBLAS, MKL or BLIS are found.
  • #8322: BUG: fixed kind specifications for parameters
  • #8336: BUG: fix packbits and unpackbits to correctly handle empty arrays
  • #8338: BUG: fix test_api test that fails intermittently in python 3
  • #8339: BUG: Fix ndarray.tofile large file corruption in append mode.
  • #8359: BUG: Fix suppress_warnings (again) for Python 3.6.
  • #8372: BUG: Fixes for ma.median and nanpercentile.
  • #8373: BUG: correct letter case
  • #8379: DOC: Update 1.12.0-notes.rst.
  • #8390: ENH: retune apply_along_axis nanmedian cutoff in 1.12
  • #8391: DEP: Fix escaped string characters deprecated in Python 3.6.
  • #8394: DOC: create 1.11.3 release notes.
  • #8399: BUG: Fix author search in announce.py
  • #8402: DOC, MAINT: Update 1.12.0 notes and mailmap.

Checksums

MD5

a8dcb183dbe9b336f7bdfb3c9dcab1c4  numpy-1.12.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
a0fffded3c5b4562782a60c062205d24  numpy-1.12.0rc1-cp27-cp27m-manylinux1_i686.whl
74a6d2ca493f4ed2aa9a26076eda592d  numpy-1.12.0rc1-cp27-cp27m-manylinux1_x86_64.whl
51a3e553c16d830f9600d071d0a70c34  numpy-1.12.0rc1-cp27-cp27mu-manylinux1_i686.whl
6382c2e48197c009a23b8f122c50c782  numpy-1.12.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
108384da4efc1271cd9a7b9f58763fdc  numpy-1.12.0rc1-cp27-none-win32.whl
c5d45db386d4170d1f19900c55680385  numpy-1.12.0rc1-cp27-none-win_amd64.whl
e06a3e32380f0157ac8829b6da60989b  numpy-1.12.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
4678191e76df688e8b9fea08267484f9  numpy-1.12.0rc1-cp34-cp34m-manylinux1_i686.whl
a3cfbc1d045476e7ab1fc4cb297f1410  numpy-1.12.0rc1-cp34-cp34m-manylinux1_x86_64.whl
23aa6b0e7997bee8ba161054b8eca263  numpy-1.12.0rc1-cp34-none-win32.whl
f85e2376c835c6a4aed56908df0b2627  numpy-1.12.0rc1-cp34-none-win_amd64.whl
30b88d280aca4d979ce274a6f8802786  numpy-1.12.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
a24092d34595bd8f47183e15c512fd25  numpy-1.12.0rc1-cp35-cp35m-manylinux1_i686.whl
99f1613b09845583e4cdd3c27fe0b581  numpy-1.12.0rc1-cp35-cp35m-manylinux1_x86_64.whl
41ed4df28cc2aa4b8ead5474d92e68ec  numpy-1.12.0rc1-cp35-none-win32.whl
dbed48e11c520aed00701cd77f4eff3b  numpy-1.12.0rc1-cp35-none-win_amd64.whl
fec43bde3d3dac92873c11f574aa3c28  numpy-1.12.0rc1.tar.gz
92e300ed24811cd119d3f04168bfcdae  numpy-1.12.0rc1.zip

SHA256

cdad735c13b344321c9b9174761bdc2e22a199a4cd6c18612f1b02ebe58b4ff7  numpy-1.12.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
0172a1987bb3c0ad0b6eec88abc49207d9746cc6f519c599b797a992a53a404c  numpy-1.12.0rc1-cp27-cp27m-manylinux1_i686.whl
1bbd7f2a07514afd5c9298a19953b15ff2b4a2759135aee19231570aab220525  numpy-1.12.0rc1-cp27-cp27m-manylinux1_x86_64.whl
cf2539d4af2409feb005d227d4a88d5371f663974aed57d1fa489a6d17d67bbc  numpy-1.12.0rc1-cp27-cp27mu-manylinux1_i686.whl
6bb0cff8e6fbca38b5048509e991a4697ffdd21ddd7453830cfc80474517d46a  numpy-1.12.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
d23ca5d4d83ac872b7f9d9cd8d6c0c2d243e491199b9bb581f3892b17108acce  numpy-1.12.0rc1-cp27-none-win32.whl
8ede1d028243199666e9ec3980afd773e91af12172e7c9274e1d9dfe86e22169  numpy-1.12.0rc1-cp27-none-win_amd64.whl
210afcb0d2893c19171d78e77d23ab05885379c0fb14cfacefdfc73d69192800  numpy-1.12.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
2ffacc9645ed40a10c14aca477999e8ea5f7422e4806a3843fd2ccbaf7ed5ad4  numpy-1.12.0rc1-cp34-cp34m-manylinux1_i686.whl
fc59b0aa44d37c5183ef288d172d81eed8772017c349acb137f8f3cb871d3ff7  numpy-1.12.0rc1-cp34-cp34m-manylinux1_x86_64.whl
46c018582f7003bd424a2776e8bef1370c1a78bd6d76af921ad6ce28539b71de  numpy-1.12.0rc1-cp34-none-win32.whl
930815b162785e77e0ff41651931155a21482f286bc432f9bc552c4308782150  numpy-1.12.0rc1-cp34-none-win_amd64.whl
78835904da4e0e143ba671a7eff8d63282d4d2db868d09c7c9e0cd4f216e43c2  numpy-1.12.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
0e71e0b43fcc925fbe227f58dc2f875c4d92299c644ae2243a8cd21e050e3acd  numpy-1.12.0rc1-cp35-cp35m-manylinux1_i686.whl
9c357f1cbaf3aae7f656e0ecd3d2f186622b9424fccb1b587ab13247b68bbc9a  numpy-1.12.0rc1-cp35-cp35m-manylinux1_x86_64.whl
0c3fe4c1ee1955a58cb98b0cc4727dff9c9acf2521d3d34609fc8f772f56ab79  numpy-1.12.0rc1-cp35-none-win32.whl
998b229248b6219938827175a5852463dd1640785df3dd8e15b2ba9018217652  numpy-1.12.0rc1-cp35-none-win_amd64.whl
2a8defaf03473fdaa15e34e849b71221f8ab3da1a7eed510799d55c913b99b06  numpy-1.12.0rc1.tar.gz
7c860cf028b13a88487fde1dcd1ce8f0859a6882c477c42083f50e48c297427e  numpy-1.12.0rc1.zip
numpy -

Published by charris almost 8 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

NumPy 1.11.3 Release Notes

Numpy 1.11.3 fixes a bug that leads to file corruption when very large files
opened in append mode are used in ndarray.tofile. It supports Python
versions 2.6 - 2.7 and 3.2 - 3.5. Wheels for Linux, Windows, and OS X can be
found on PyPI.

Contributors to maintenance/1.11.3

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

  • - Charles Harris
  • - Pavel Potocek +

Pull Requests Merged

  • - #8341 <https://github.com/numpy/numpy/pull/8341>__: BUG: Fix ndarray.tofile large file corruption in append mode.
  • - #8346 <https://github.com/numpy/numpy/pull/8346>__: TST: Fix tests in PR #8341 for NumPy 1.11.x

Checksums

MD5


f36503c6665701e1ca0fd2953b6419dd  numpy-1.11.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
ada01f12b747c0669be00be843fde6dd  numpy-1.11.3-cp27-cp27m-manylinux1_i686.whl
e3f454dc204b90015e4d8991b12069fb  numpy-1.11.3-cp27-cp27m-manylinux1_x86_64.whl
cccfb3f765fa2eb4759590467a5f3fb1  numpy-1.11.3-cp27-cp27mu-manylinux1_i686.whl
479c0c8b50ab0ed4acca0a66887fe74c  numpy-1.11.3-cp27-cp27mu-manylinux1_x86_64.whl
110b93cc26ca556b075316bee81f8652  numpy-1.11.3-cp27-none-win32.whl
33bfb4c5f5608d3966a6600fa3d7623c  numpy-1.11.3-cp27-none-win_amd64.whl
81df8e91c06595572583cd67fcb7d68f  numpy-1.11.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
194d8903cb3fd3b17af4093089b1a154  numpy-1.11.3-cp34-cp34m-manylinux1_i686.whl
837d9d7c911d4589172d19d0d8fb4eaf  numpy-1.11.3-cp34-cp34m-manylinux1_x86_64.whl
f6b24305ab3edba245106b49b97fd9d7  numpy-1.11.3-cp34-none-win32.whl
2f3fdd08d9ad43304d67c16182ff92de  numpy-1.11.3-cp34-none-win_amd64.whl
f90839ad86e3ccda9a409ce93ca1cccc  numpy-1.11.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
3b2268154e405f895402cbd4cbcaad7a  numpy-1.11.3-cp35-cp35m-manylinux1_i686.whl
3d6754274af48c1c19154dd370ddb569  numpy-1.11.3-cp35-cp35m-manylinux1_x86_64.whl
f8b64f46cc0e9a3fc877f24efd5e3b7c  numpy-1.11.3-cp35-none-win32.whl
b1a53851dde805a233e6c4eafe116e82  numpy-1.11.3-cp35-none-win_amd64.whl
b8a9dec6901c046edaea706bad1448b1  numpy-1.11.3.tar.gz
aa70cd5bba81b78382694d654ed10036  numpy-1.11.3.zip

SHA256

5941d3dbd0afed1ecd3746c0371b2a8b79977d084004cc320c2a4cf9d88589d8 numpy-1.11.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
ca37b5bebcc4ebde39dfbff0bda69fdc28785a8ff21155fd7adacf473c7b40dd numpy-1.11.3-cp27-cp27m-manylinux1_i686.whl
276cbb35b69eb2f0d5f264b7c71bdc1f4e91ecd3125d32cd1839873268239892 numpy-1.11.3-cp27-cp27m-manylinux1_x86_64.whl
1226e259d796207e8ef36762dce139e7da1cc0bb78f5d54e739252acd07834e5 numpy-1.11.3-cp27-cp27mu-manylinux1_i686.whl
674d0c1318890357f27ce3a8939e643eaf55140cfb8e84730aeee1dd769b0c21 numpy-1.11.3-cp27-cp27mu-manylinux1_x86_64.whl
f8b30c76e0f805da7ea641f52c3f6bade55d50a0767f9c89c50e4c42b2a1b34c numpy-1.11.3-cp27-none-win32.whl
8cd184b0341e1db3a5619c85f875ce511ef0eb7ec01ec320116959a3de77f1b8 numpy-1.11.3-cp27-none-win_amd64.whl
f0824beb03aff58d4062508b1dd4f737f08f5d2369f25a73c2350fe081beab2c numpy-1.11.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
9e4228ac322743dea101a90305ee6d54b4bf82f15d6499e55d1d9cef17bccdbb numpy-1.11.3-cp34-cp34m-manylinux1_i686.whl
195604fc19a9333f3342fcad93094b6a21bc6e6b28d7bfec14d120cb4391a032 numpy-1.11.3-cp34-cp34m-manylinux1_x86_64.whl
71a6aa8b8c9f666b541208d38b30c84df1666e4cc02fb33b59086aaea10affad numpy-1.11.3-cp34-none-win32.whl
135586ce1966dbecd9494ba30cb9beca93fad323ef9264c21efc2a0b59e449d2 numpy-1.11.3-cp34-none-win_amd64.whl
cca8af884cbf220656ca2f8f9120a634e5cfb5fdcb0a21fd83ec279cc4f46654 numpy-1.11.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
ab810c942ead3f5988a7bef95dc6e85b586b6e814b83d571dfbca879e245bd45 numpy-1.11.3-cp35-cp35m-manylinux1_i686.whl
7c6eb737dc3d53977c558d57625dfbecd9900a5807ff17edd6842a102cb95c3b numpy-1.11.3-cp35-cp35m-manylinux1_x86_64.whl
ab2af03dabecb97de27badfa944c56d799774a1fa975d52083197bb81858b742 numpy-1.11.3-cp35-none-win32.whl
dd1800ec19192fd853bc255917eb3ecb34de268551b9c561f36d089023883807 numpy-1.11.3-cp35-none-win_amd64.whl
6e89f41217028452977cddb2a6c614e2210214bf3efb8494e7a9137b26985d41 numpy-1.11.3.tar.gz
2e0fc5248246a64628656fe14fcab0a959741a2820e003bd15538226501b82f7 numpy-1.11.3.zip
-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJYVz6CAAoJEGefIoN3xSR7PUsH/iK2boFNPG2x6RQ2bIvYW/eC
iDw5Aewhv5VJRch8QUDAJAVX228Zw4rKY4mxgyXMBvd2ZGL0+E6lMSlooK9r4Sz+
y+lnHyWFc1UjxgQla46TUV77l8PBMjXUKgPQl+Whp8YYwqKd5Q1ZYmDcbNwuNZNc
lw7aRcVMF2/hv02B+SYaxp2eo7VQVYf6OJQ3a2Ya8bdLUr2M5kUbVeUk4fpUhQXT
FX3E0jFlxELm3y6YkC3mxgyp9kAOOn0d2M7y9IjufOaj7F+oCg+uHMfPTK6EqnoU
7T08Hy8TSdyoUY4ueRsoj3Ns/iwaM88iR133A4UR7vbNkaIDkVhCE/isrdvwbwk=
=SJME
-----END PGP SIGNATURE-----

numpy -

Published by charris almost 8 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

NumPy 1.12.0 Release Notes


This release supports Python 2.7 and 3.4 - 3.6.

Highlights

  • Order of operations in np.einsum now can be optimized for large speed improvements.
  • New signature argument to np.vectorize for vectorizing with core dimensions.
  • The keepdims argument was added to many functions.

Dropped Support

  • Support for Python 2.6, 3.2, and 3.3 has been dropped.

Added Support

  • Support for PyPy 2.7 v5.6.0 has been added. While not complete (nditer
    updateifcopy is not supported yet), this is a milestone for PyPy's
    C-API compatibility layer.

Build System Changes

  • Library order is preserved, instead of being reordered to match that of
    the directories.

Deprecations

Assignment of ndarray object's data attribute

Assigning the 'data' attribute is an inherently unsafe operation as pointed
out in gh-7083. Such a capability will be removed in the future.

Unsafe int casting of the num attribute in ``linspace``

np.linspace now raises DeprecationWarning when num cannot be safely
interpreted as an integer.

Insufficient bit width parameter to binary_repr

If a 'width' parameter is passed into ``binary_repr`` that is insufficient to
represent the number in base 2 (positive) or 2's complement (negative) form,
the function used to silently ignore the parameter and return a representation
using the minimal number of bits needed for the form in question. Such behavior
is now considered unsafe from a user perspective and will raise an error in the
future.


Future Changes
==============

* In 1.13 NAT will always compare False except for ``NAT != NAT``,
  which will be True.  In short, NAT will behave like NaN
* In 1.13 np.average will preserve subclasses, to match the behavior of most
  other numpy functions such as np.mean. In particular, this means calls which
  returned a scalar may return a 0-d subclass object instead.

Multiple-field manipulation of structured arrays

In 1.13 the behavior of structured arrays involving multiple fields will change
in two ways:

First, indexing a structured array with multiple fields (eg,
arr[['f1', 'f3']]) will return a view into the original array in 1.13,
instead of a copy. Note the returned view will have extra padding bytes
corresponding to intervening fields in the original array, unlike the copy in
1.12, which will affect code such as arr[['f1', 'f3']].view(newdtype).

Second, for numpy versions 1.6 to 1.12 assignment between structured arrays
occurs "by field name": Fields in the destination array are set to the
identically-named field in the source array or to 0 if the source does not have
a field::

>>> a = np.array([(1,2),(3,4)], dtype=[('x', 'i4'), ('y', 'i4')])
>>> b = np.ones(2, dtype=[('z', 'i4'), ('y', 'i4'), ('x', 'i4')])
>>> b[:] = a
>>> b
array([(0, 2, 1), (0, 4, 3)],
      dtype=[('z', '<i4'), ('y', '<i4'), ('x', '<i4')])

In 1.13 assignment will instead occur "by position": The Nth field of the
destination will be set to the Nth field of the source regardless of field
name. The old behavior can be obtained by using indexing to reorder the fields
before
assignment, e.g., b[['x', 'y']] = a[['y', 'x']].

Compatibility notes

DeprecationWarning to error


* Indexing with floats raises ``IndexError``,
  e.g., a[0, 0.0].
* Indexing with non-integer array_like raises ``IndexError``,
  e.g., ``a['1', '2']``
* Indexing with multiple ellipsis raises ``IndexError``,
  e.g., ``a[..., ...]``.
* Non-integers used as index values raise ``TypeError``,
  e.g., in ``reshape``, ``take``, and specifying reduce axis.

FutureWarning to changed behavior
  • np.full now returns an array of the fill-value's dtype if no dtype is
    given, instead of defaulting to float.
  • np.average will emit a warning if the argument is a subclass of ndarray,
    as the subclass will be preserved starting in 1.13. (see Future Changes)

power and ** raise errors for integer to negative integer powers

The previous behavior depended on whether numpy scalar integers or numpy
integer arrays were involved.

For arrays

* Zero to negative integer powers returned least integral value.
* Both 1, -1 to negative integer powers returned correct values.
* The remaining integers returned zero when raised to negative integer powers.

For scalars

* Zero to negative integer powers returned least integral value.
* Both 1, -1 to negative integer powers returned correct values.
* The remaining integers sometimes returned zero, sometimes the
  correct float depending on the integer type combination.

All of these cases now raise a ``ValueError`` except for those integer
combinations whose common type is float, for instance uint64 and int8. It was
felt that a simple rule was the best way to go rather than have special
exceptions for the integer units. If you need negative powers, use an inexact
type.

Relaxed stride checking is the default

This will have some impact on code that assumed that F_CONTIGUOUS and
C_CONTIGUOUS were mutually exclusive and could be set to determine the
default order for arrays that are now both.

The np.percentile 'midpoint' interpolation method fixed for exact indices

The 'midpoint' interpolator now gives the same result as 'lower' and 'higher' when
the two coincide. Previous behavior of 'lower' + 0.5 is fixed.

``keepdims`` kwarg is passed through to user-class methods

numpy functions that take a keepdims kwarg now pass the value
through to the corresponding methods on ndarray sub-classes. Previously the
keepdims keyword would be silently dropped. These functions now have
the following behavior:

  1. If user does not provide keepdims, no keyword is passed to the underlying
    method.
  2. Any user-provided value of keepdims is passed through as a keyword
    argument to the method.

This will raise in the case where the method does not support a
keepdims kwarg and the user explicitly passes in keepdims.

The following functions are changed: sum, product,
sometrue, alltrue, any, all, amax, amin,
prod, mean, std, var, nanmin, nanmax,
nansum, nanprod, nanmean, nanmedian, nanvar,
nanstd

bitwise_and identity changed

The previous identity was 1, it is now -1. See entry in `Improvements`_ for
more explanation.

Greater consistancy in ``assert_almost_equal``

The precision check for scalars has been changed to match that for arrays. It
is now::

abs(actual - desired) < 1.5 * 10**(-decimal)

Note that this is looser than previously documented, but agrees with the
previous implementation used in assert_array_almost_equal. Due to the
change in implementation some very delicate tests may fail that did not
fail before.

NoseTester behaviour of warnings during testing

When ``raise_warnings="develop"`` is given, all uncaught warnings will now
be considered a test failure. Previously only selected ones were raised.
Warnings which are not caught or raised (mostly when in release mode)
will be shown once during the test cycle similar to the default python
settings.

``assert_warns`` and ``deprecated`` decorator more specific

The assert_warns function and context manager are now more specific
to the given warning category. This increased specificity leads to them
being handled according to the outer warning settings. This means that
no warning may be raised in cases where a wrong category warning is given
and ignored outside the context. Alternatively the increased specificity
may mean that warnings that were incorrectly ignored will now be shown
or raised. See also the new suppress_warnings context manager.
The same is true for the deprecated decorator.

C API

No changes.


New Features
============

Writeable keyword argument for ``as_strided``

np.lib.stride_tricks.as_strided now has a writeable
keyword argument. It can be set to False when no write operation
to the returned array is expected to avoid accidental
unpredictable writes.

axes keyword argument for rot90

The ``axes`` keyword argument in ``rot90`` determines the plane in which the
array is rotated. It defaults to ``axes=(0,1)`` as in the originial function.

Generalized ``flip``

flipud and fliplr reverse the elements of an array along axis=0 and
axis=1 respectively. The newly added flip function reverses the elements of
an array along any given axis.

  • np.count_nonzero now has an axis parameter, allowing
    non-zero counts to be generated on more than just a flattened
    array object.

BLIS support in numpy.distutils

Building against the BLAS implementation provided by the BLIS library is now
supported.  See the ``[blis]`` section in ``site.cfg.example`` (in the root of
the numpy repo or source distribution).

Hook in ``numpy/__init__.py`` to run distribution-specific checks

Binary distributions of numpy may need to run specific hardware checks or load
specific libraries during numpy initialization. For example, if we are
distributing numpy with a BLAS library that requires SSE2 instructions, we
would like to check the machine on which numpy is running does have SSE2 in
order to give an informative error.

Add a hook in numpy/__init__.py to import a numpy/_distributor_init.py
file that will remain empty (bar a docstring) in the standard numpy source,
but that can be overwritten by people making binary distributions of numpy.

New nanfunctions nancumsum and nancumprod added

Nan-functions ``nancumsum`` and ``nancumprod`` have been added to
compute ``cumsum`` and ``cumprod`` by ignoring nans.

``np.interp`` can now interpolate complex values

np.lib.interp(x, xp, fp) now allows the interpolated array fp
to be complex and will interpolate at complex128 precision.

New polynomial evaluation function polyvalfromroots added

The new function ``polyvalfromroots`` evaluates a polynomial at given points
from the roots of the polynomial. This is useful for higher order polynomials,
where expansion into polynomial coefficients is inaccurate at machine
precision.

New array creation function ``geomspace`` added

The new function geomspace generates a geometric sequence. It is similar
to logspace, but with start and stop specified directly:
geomspace(start, stop) behaves the same as
logspace(log10(start), log10(stop)).

New context manager for testing warnings

A new context manager ``suppress_warnings`` has been added to the testing
utils. This context manager is designed to help reliably test warnings.
Specifically to reliably filter/ignore warnings. Ignoring warnings
by using an "ignore" filter in Python versions before 3.4.x can quickly
result in these (or similar) warnings not being tested reliably.

The context manager allows to filter (as well as record) warnings similar
to the ``catch_warnings`` context, but allows for easier specificity.
Also printing warnings that have not been filtered or nesting the
context manager will work as expected. Additionally, it is possible
to use the context manager as a decorator which can be useful when
multiple tests give need to hide the same warning.

New masked array functions ``ma.convolve`` and ``ma.correlate`` added

These functions wrapped the non-masked versions, but propagate through masked
values. There are two different propagation modes. The default causes masked
values to contaminate the result with masks, but the other mode only outputs
masks if there is no alternative.

New float_power ufunc

The new ``float_power`` ufunc is like the ``power`` function except all
computation is done in a minimum precision of float64. There was a long
discussion on the numpy mailing list of how to treat integers to negative
integer powers and a popular proposal was that the ``__pow__`` operator should
always return results of at least float64 precision. The ``float_power``
function implements that option. Note that it does not support object arrays.

``np.loadtxt`` now supports a single integer as ``usecol`` argument

Instead of using usecol=(n,) to read the nth column of a file
it is now allowed to use usecol=n. Also the error message is
more user friendly when a non-integer is passed as a column index.

Improved automated bin estimators for histogram

Added 'doane' and 'sqrt' estimators to ``histogram`` via the ``bins``
argument. Added support for range-restricted histograms with automated
bin estimation.

``np.roll`` can now roll multiple axes at the same time

The shift and axis arguments to roll are now broadcast against each
other, and each specified axis is shifted accordingly.

The __complex__ method has been implemented for the ndarrays

Calling ``complex()`` on a size 1 array will now cast to a python
complex.

``pathlib.Path`` objects now supported

The standard np.load, np.save, np.loadtxt, np.savez, and similar
functions can now take pathlib.Path objects as an argument instead of a
filename or open file object.

New bits attribute for np.finfo

This makes ``np.finfo`` consistent with ``np.iinfo`` which already has that
attribute.

New ``signature`` argument to ``np.vectorize``

This argument allows for vectorizing user defined functions with core
dimensions, in the style of NumPy's
:ref:generalized universal functions<c-api.generalized-ufuncs>. This allows
for vectorizing a much broader class of functions. For example, an arbitrary
distance metric that combines two vectors to produce a scalar could be
vectorized with signature='(n),(n)->()'. See np.vectorize for full
details.

Emit py3kwarnings for division of integer arrays

To help people migrate their code bases from Python 2 to Python 3, the
python interpreter has a handy option -3, which issues warnings at runtime.
One of its warnings is for integer division::

    $ python -3 -c "2/3"

    -c:1: DeprecationWarning: classic int division

In Python 3, the new integer division semantics also apply to numpy arrays.
With this version, numpy will emit a similar warning::

    $ python -3 -c "import numpy as np; np.array(2)/np.array(3)"

    -c:1: DeprecationWarning: numpy: classic int division

numpy.sctypes now includes bytes on Python3 too

Previously, it included str (bytes) and unicode on Python2, but only str
(unicode) on Python3.

Improvements

bitwise_and identity changed

The previous identity was 1 with the result that all bits except the LSB were
masked out when the reduce method was used.  The new identity is -1, which
should work properly on twos complement machines as all bits will be set to
one.

Generalized Ufuncs will now unlock the GIL

Generalized Ufuncs, including most of the linalg module, will now unlock
the Python global interpreter lock.

Caches in np.fft are now bounded in total size and item count

The caches in `np.fft` that speed up successive FFTs of the same length can no
longer grow without bounds. They have been replaced with LRU (least recently
used) caches that automatically evict no longer needed items if either the
memory size or item count limit has been reached.

Improved handling of zero-width string/unicode dtypes

Fixed several interfaces that explicitly disallowed arrays with zero-width
string dtypes (i.e. dtype('S0') or dtype('U0'), and fixed several
bugs where such dtypes were not handled properly. In particular, changed
ndarray.__new__ to not implicitly convert dtype('S0') to
dtype('S1') (and likewise for unicode) when creating new arrays.

Integer ufuncs vectorized with AVX2

If the cpu supports it at runtime the basic integer ufuncs now use AVX2
instructions. This feature is currently only available when compiled with GCC.

Order of operations optimization in ``np.einsum``

np.einsum now supports the optimize argument which will optimize the
order of contraction. For example, np.einsum would complete the chain dot
example np.einsum(‘ij,jk,kl->il’, a, b, c) in a single pass which would
scale like N^4; however, when optimize=True np.einsum will create
an intermediate array to reduce this scaling to N^3 or effectively
np.dot(a, b).dot(c). Usage of intermediate tensors to reduce scaling has
been applied to the general einsum summation notation. See np.einsum_path
for more details.

quicksort has been changed to an introsort

The quicksort kind of ``np.sort`` and ``np.argsort`` is now an introsort which
is regular quicksort but changing to a heapsort when not enough progress is
made. This retains the good quicksort performance while changing the worst case
runtime from ``O(N^2)`` to ``O(N*log(N))``.

``ediff1d`` improved performance and subclass handling

The ediff1d function uses an array instead on a flat iterator for the
subtraction. When to_begin or to_end is not None, the subtraction is performed
in place to eliminate a copy operation. A side effect is that certain
subclasses are handled better, namely astropy.Quantity, since the complete
array is created, wrapped, and then begin and end values are set, instead of
using concatenate.

Improved precision of ndarray.mean for float16 arrays

The computation of the mean of float16 arrays is now carried out in float32 for
improved precision. This should be useful in packages such as scikit-learn
where the precision of float16 is adequate and its smaller footprint is
desireable.


Changes
=======

All array-like methods are now called with keyword arguments in fromnumeric.py

Internally, many array-like methods in fromnumeric.py were being called with
positional arguments instead of keyword arguments as their external signatures
were doing. This caused a complication in the downstream 'pandas' library
that encountered an issue with 'numpy' compatibility. Now, all array-like
methods in this module are called with keyword arguments instead.

Operations on np.memmap objects return numpy arrays in most cases

Previously operations on a memmap object would misleadingly return a memmap
instance even if the result was actually not memmapped.  For example,
``arr + 1`` or ``arr + arr`` would return memmap instances, although no memory
from the output array is memmaped. Version 1.12 returns ordinary numpy arrays
from these operations.

Also, reduction of a memmap (e.g.  ``.sum(axis=None``) now returns a numpy
scalar instead of a 0d memmap.

stacklevel of warnings increased

The stacklevel for python based warnings was increased so that most warnings
will report the offending line of the user code instead of the line the
warning itself is given. Passing of stacklevel is now tested to ensure that
new warnings will receive the stacklevel argument.

This causes warnings with the "default" or "module" filter to be shown once
for every offending user code line or user module instead of only once. On
python versions before 3.4, this can cause warnings to appear that were falsely
ignored before, which may be surprising especially in test suits.

Contributors to maintenance/1.12.x

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

  • - Aditya Panchal
  • - Ales Erjavec +
  • - Alex Griffing
  • - Alistair Muldal
  • - Allan Haldane
  • - Amit Aronovitch +
  • - Andrei Kucharavy +
  • - Antony Lee
  • - Antti Kaihola +
  • - Arne de Laat +
  • - Auke Wiggers +
  • - AustereCuriosity +
  • - Badhri Narayanan Krishnakumar +
  • - Ben North +
  • - Ben Rowland +
  • - Bertrand Lefebvre
  • - Boxiang Sun
  • - CJ Carey
  • - Charles Harris
  • - Christoph Gohlke
  • - Daniel Ching +
  • - Daniel Rasmussen +
  • - Daniel Smith +
  • - David Schaich +
  • - Denis Alevi +
  • - Devin Jeanpierre +
  • - Dmitry Odzerikho
  • - Dongjoon Hyun +
  • - Edward Richards +
  • - Ekaterina Tuzova +
  • - Emilien Kofman +
  • - Endolith
  • - Eren Sezener +
  • - Eric Moore
  • - Eric Quintero +
  • - Eric Wieser +
  • - Erik M. Bray
  • - Frederic Bastien +
  • - Friedrich Dunne +
  • - Gerrit Holl
  • - Golnaz Irannejad +
  • - Graham Markall +
  • - Greg Knoll +
  • - Greg Young
  • - Gustavo Serra Scalet +
  • - Ines Wichert +
  • - Irvin Probst +
  • - Jaime Fernandez
  • - Jan David Mol +
  • - Jan Schlüter
  • - Jeremy Tuloup +
  • - John Kirkham
  • - John Zwinck +
  • - Jonathan Helmus
  • - Joseph Fox-Rabinovitz
  • - Josh Wilson +
  • - Joshua Warner +
  • - Julian Taylor
  • - Ka Wo Chen +
  • - Kamil Rytarowski +
  • - Kelsey Jordahl +
  • - Kevin Deldycke +
  • - Khaled Ben Abdallah Okuda +
  • - Lion Krischer +
  • - Loïc Estève +
  • - Luca Mussi +
  • - Mads Ohm Larsen +
  • - Manoj Kumar +
  • - Mario Emmenlauer +
  • - Marshall Bockrath-Vandegrift +
  • - Marshall Ward +
  • - Marten van Kerkwijk
  • - Mathieu Lamarre +
  • - Matthew Brett
  • - Matthew Harrigan +
  • - Matthias Geier
  • - Matti Picus +
  • - Meet Udeshi +
  • - Michael Felt +
  • - Michael Goerz +
  • - Michael Martin +
  • - Michael Seifert +
  • - Mike Nolta +
  • - Nathaniel Beaver +
  • - Nathaniel J. Smith
  • - Naveen Arunachalam +
  • - Nikola Forró +
  • - Oleksandr Pavlyk +
  • - Olivier Grisel
  • - Oren Amsalem +
  • - Pauli Virtanen
  • - Pedro Lacerda +
  • - Peter Creasey +
  • - Phil Elson +
  • - Philip Gura +
  • - Phillip J. Wolfram +
  • - Pierre de Buyl +
  • - Raghav RV +
  • - Ralf Gommers
  • - Ray Donnelly +
  • - Rehas Sachdeva
  • - Rob Malouf +
  • - Robert Kern
  • - Samuel St-Jean
  • - Saurabh Mehta +
  • - Scott Sanderson +
  • - Sebastian Berg
  • - Shayan Pooya +
  • - Shota Kawabuchi +
  • - Simon Conseil
  • - Simon Gibbons
  • - Sorin Sbarnea +
  • - Stefan van der Walt
  • - Stephan Hoyer
  • - Steven J Kern +
  • - Stuart Archibald
  • - Tadeu Manoel +
  • - Thomas A Caswell
  • - Tom Bird +
  • - Tony Kelman +
  • - Toshihiro Kamishima +
  • - Valentin Valls +
  • - Varun Nayyar
  • - Victor Stinner +
  • - Warren Weckesser
  • - Wendell Smith
  • - Xavier Abellan Ecija +
  • - Yaroslav Halchenko
  • - Yash Shah +
  • - Yinon Ehrlich +
  • - Yu Feng +
  • - alvarosg +
  • - nevimov +

Pull requests merged for maintenance/1.12.x

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

  • - #4073 <https://github.com/numpy/numpy/pull/4073>__: BUG: change real output checking to test if all imaginary parts...
  • - #4619 <https://github.com/numpy/numpy/pull/4619>__: BUG : np.sum silently drops keepdims for sub-classes of ndarray
  • - #5488 <https://github.com/numpy/numpy/pull/5488>__: ENH: add contract: optimizing numpy's einsum expression
  • - #5706 <https://github.com/numpy/numpy/pull/5706>__: ENH: make some masked array methods behave more like ndarray...
  • - #5822 <https://github.com/numpy/numpy/pull/5822>__: ENH: Allow many distributions to have a scale of 0.
  • - #6054 <https://github.com/numpy/numpy/pull/6054>__: WIP: MAINT: Add deprecation warning to views of multi-field indexes
  • - #6298 <https://github.com/numpy/numpy/pull/6298>__: BUG: Check lower base limit in base_repr.
  • - #6430 <https://github.com/numpy/numpy/pull/6430>__: BUG: Fix issues with zero-width string fields
  • - #6656 <https://github.com/numpy/numpy/pull/6656>__: ENH: usecols now accepts an int when only one column has to be...
  • - #6660 <https://github.com/numpy/numpy/pull/6660>__: ENH: Added pathlib support for several functions
  • - #6872 <https://github.com/numpy/numpy/pull/6872>__: ENH: linear interpolation of complex values in lib.interp
  • - #6997 <https://github.com/numpy/numpy/pull/6997>__: MAINT: Simplify mtrand.pyx helpers
  • - #7003 <https://github.com/numpy/numpy/pull/7003>__: BUG: Fix string copying for np.place
  • - #7026 <https://github.com/numpy/numpy/pull/7026>__: DOC: Clarify behavior in np.random.uniform
  • - #7055 <https://github.com/numpy/numpy/pull/7055>__: BUG: One Element Array Inputs Return Scalars in np.random
  • - #7063 <https://github.com/numpy/numpy/pull/7063>__: REL: Update master branch after 1.11.x branch has been made.
  • - #7073 <https://github.com/numpy/numpy/pull/7073>__: DOC: Update the 1.11.0 release notes.
  • - #7076 <https://github.com/numpy/numpy/pull/7076>__: MAINT: Update the git .mailmap file.
  • - #7082 <https://github.com/numpy/numpy/pull/7082>__: TST, DOC: Added Broadcasting Tests in test_random.py
  • - #7087 <https://github.com/numpy/numpy/pull/7087>__: BLD: fix compilation on non glibc-Linuxes
  • - #7088 <https://github.com/numpy/numpy/pull/7088>__: BUG: Have norm cast non-floating point arrays to 64-bit float...
  • - #7090 <https://github.com/numpy/numpy/pull/7090>__: ENH: Added 'doane' and 'sqrt' estimators to np.histogram in numpy.function_base
  • - #7091 <https://github.com/numpy/numpy/pull/7091>__: BUG: Revert "BLD: fix compilation on non glibc-Linuxes"
  • - #7092 <https://github.com/numpy/numpy/pull/7092>__: BLD: fix compilation on non glibc-Linuxes
  • - #7099 <https://github.com/numpy/numpy/pull/7099>__: TST: Suppressed warnings
  • - #7102 <https://github.com/numpy/numpy/pull/7102>__: MAINT: Removed conditionals that are always false in datetime_strings.c
  • - #7105 <https://github.com/numpy/numpy/pull/7105>__: DEP: Deprecate as_strided returning a writable array as default
  • - #7109 <https://github.com/numpy/numpy/pull/7109>__: DOC: update Python versions requirements in the install docs
  • - #7114 <https://github.com/numpy/numpy/pull/7114>__: MAINT: Fix typos in docs
  • - #7116 <https://github.com/numpy/numpy/pull/7116>__: TST: Fixed f2py test for win32 virtualenv
  • - #7118 <https://github.com/numpy/numpy/pull/7118>__: TST: Fixed f2py test for non-versioned python executables
  • - #7119 <https://github.com/numpy/numpy/pull/7119>__: BUG: Fixed mingw.lib error
  • - #7125 <https://github.com/numpy/numpy/pull/7125>__: DOC: Updated documentation wording and examples for np.percentile.
  • - #7129 <https://github.com/numpy/numpy/pull/7129>__: BUG: Fixed 'midpoint' interpolation of np.percentile in odd cases.
  • - #7131 <https://github.com/numpy/numpy/pull/7131>__: REL: Fix setuptools sdist
  • - #7133 <https://github.com/numpy/numpy/pull/7133>__: ENH: savez: temporary file alongside with target file and improve...
  • - #7134 <https://github.com/numpy/numpy/pull/7134>__: MAINT: Fix some typos in a code string and comments
  • - #7141 <https://github.com/numpy/numpy/pull/7141>__: BUG: Unpickled void scalars should be contiguous
  • - #7144 <https://github.com/numpy/numpy/pull/7144>__: MAINT: Change call_fortran into callfortran in comments.
  • - #7145 <https://github.com/numpy/numpy/pull/7145>__: BUG: Fixed regressions in np.piecewise in ref to #5737 and #5729.
  • - #7147 <https://github.com/numpy/numpy/pull/7147>: REL: Temporarily disable __numpy_ufunc
  • - #7148 <https://github.com/numpy/numpy/pull/7148>__: ENH,TST: Bump stacklevel and add tests for warnings
  • - #7149 <https://github.com/numpy/numpy/pull/7149>__: TST: Add missing suffix to temppath manager
  • - #7152 <https://github.com/numpy/numpy/pull/7152>__: BUG: mode kwargs passed as unicode to np.pad raises an exception
  • - #7156 <https://github.com/numpy/numpy/pull/7156>__: BUG: Reascertain that linspace respects ndarray subclasses in start,...
  • - #7167 <https://github.com/numpy/numpy/pull/7167>__: DOC: Update Wikipedia references for mtrand.pyx
  • - #7171 <https://github.com/numpy/numpy/pull/7171>__: TST: Fixed f2py test for Anaconda non-win32
  • - #7174 <https://github.com/numpy/numpy/pull/7174>__: DOC: Fix broken pandas link in release notes
  • - #7177 <https://github.com/numpy/numpy/pull/7177>__: ENH: added axis param for np.count_nonzero
  • - #7178 <https://github.com/numpy/numpy/pull/7178>__: BUG: Fix binary_repr for negative numbers
  • - #7180 <https://github.com/numpy/numpy/pull/7180>__: BUG: Fixed previous attempt to fix dimension mismatch in nanpercentile
  • - #7181 <https://github.com/numpy/numpy/pull/7181>__: DOC: Updated minor typos in function_base.py and test_function_base.py
  • - #7191 <https://github.com/numpy/numpy/pull/7191>__: DOC: add vstack, hstack, dstack reference to stack documentation.
  • - #7193 <https://github.com/numpy/numpy/pull/7193>__: MAINT: Removed supurious assert in histogram estimators
  • - #7194 <https://github.com/numpy/numpy/pull/7194>__: BUG: Raise a quieter MaskedArrayFutureWarning for mask changes.
  • - #7195 <https://github.com/numpy/numpy/pull/7195>__: STY: Drop some trailing spaces in numpy.ma.core.
  • - #7196 <https://github.com/numpy/numpy/pull/7196>__: BUG: Revert "DOC: add vstack, hstack, dstack reference to stack documentation."
  • - #7197 <https://github.com/numpy/numpy/pull/7197>__: TST: Pin virtualenv used on Travis CI.
  • - #7198 <https://github.com/numpy/numpy/pull/7198>__: ENH: Unlock the GIL for gufuncs
  • - #7199 <https://github.com/numpy/numpy/pull/7199>__: MAINT: Cleanup for histogram bin estimator selection
  • - #7201 <https://github.com/numpy/numpy/pull/7201>__: BUG: Raise IOError on not a file in python2
  • - #7202 <https://github.com/numpy/numpy/pull/7202>__: MAINT: Made iterable return a boolean
  • - #7209 <https://github.com/numpy/numpy/pull/7209>__: TST: Bump virtualenv to 14.0.6
  • - #7211 <https://github.com/numpy/numpy/pull/7211>__: DOC: Fix fmin examples
  • - #7215 <https://github.com/numpy/numpy/pull/7215>__: MAINT: Use PySlice_GetIndicesEx instead of custom reimplementation
  • - #7229 <https://github.com/numpy/numpy/pull/7229>: ENH: implement __complex
  • - #7231 <https://github.com/numpy/numpy/pull/7231>__: MRG: allow distributors to run custom init
  • - #7232 <https://github.com/numpy/numpy/pull/7232>__: BLD: Switch order of test for lapack_mkl and openblas_lapack
  • - #7239 <https://github.com/numpy/numpy/pull/7239>__: DOC: Removed residual merge markup from previous commit
  • - #7240 <https://github.com/numpy/numpy/pull/7240>__: MAINT: Change 'pubic' to 'public'.
  • - #7241 <https://github.com/numpy/numpy/pull/7241>__: MAINT: update doc/sphinxext to numpydoc 0.6.0, and fix up some...
  • - #7243 <https://github.com/numpy/numpy/pull/7243>__: ENH: Adding support to the range keyword for estimation of the...
  • - #7246 <https://github.com/numpy/numpy/pull/7246>__: DOC: metion writeable keyword in as_strided in release notes
  • - #7247 <https://github.com/numpy/numpy/pull/7247>__: TST: Fail quickly on AppVeyor for superseded PR builds
  • - #7248 <https://github.com/numpy/numpy/pull/7248>__: DOC: remove link to documentation wiki editor from HOWTO_DOCUMENT.
  • - #7250 <https://github.com/numpy/numpy/pull/7250>__: DOC,REL: Update 1.11.0 notes.
  • - #7251 <https://github.com/numpy/numpy/pull/7251>__: BUG: only benchmark complex256 if it exists
  • - #7252 <https://github.com/numpy/numpy/pull/7252>__: BUG: Forward port a fix and enhancement from 1.11.x
  • - #7253 <https://github.com/numpy/numpy/pull/7253>__: DOC: note in h/v/dstack points users to stack/concatenate
  • - #7254 <https://github.com/numpy/numpy/pull/7254>__: BUG: Enforce dtype for randint singletons
  • - #7256 <https://github.com/numpy/numpy/pull/7256>__: MAINT: Use is None or is not None instead of == None or...
  • - #7257 <https://github.com/numpy/numpy/pull/7257>__: DOC: Fix mismatched variable names in docstrings.
  • - #7258 <https://github.com/numpy/numpy/pull/7258>__: ENH: Make numpy floor_divide and remainder agree with Python...
  • - #7260 <https://github.com/numpy/numpy/pull/7260>__: BUG/TST: Fix #7259, do not "force scalar" for already scalar...
  • - #7261 <https://github.com/numpy/numpy/pull/7261>__: MAINT: Added self to mailmap
  • - #7266 <https://github.com/numpy/numpy/pull/7266>: BUG: Segfault for classes with deceptive __len
  • - #7268 <https://github.com/numpy/numpy/pull/7268>__: ENH: add geomspace function
  • - #7274 <https://github.com/numpy/numpy/pull/7274>__: BUG: Preserve array order in np.delete
  • - #7275 <https://github.com/numpy/numpy/pull/7275>__: DEP: Warn about assigning 'data' attribute of ndarray
  • - #7276 <https://github.com/numpy/numpy/pull/7276>__: DOC: apply_along_axis missing whitespace inserted (before colon)
  • - #7278 <https://github.com/numpy/numpy/pull/7278>__: BUG: Make returned unravel_index arrays writeable
  • - #7279 <https://github.com/numpy/numpy/pull/7279>__: TST: Fixed elements being shuffled
  • - #7280 <https://github.com/numpy/numpy/pull/7280>__: MAINT: Remove redundant trailing semicolons.
  • - #7285 <https://github.com/numpy/numpy/pull/7285>__: BUG: Make Randint Backwards Compatible with Pandas
  • - #7286 <https://github.com/numpy/numpy/pull/7286>__: MAINT: Fix typos in docs/comments of ma and polynomial modules.
  • - #7292 <https://github.com/numpy/numpy/pull/7292>__: MAINT: Clarify error on repr failure in assert_equal.
  • - #7294 <https://github.com/numpy/numpy/pull/7294>__: ENH: add support for BLIS to numpy.distutils
  • - #7295 <https://github.com/numpy/numpy/pull/7295>__: DOC: understanding code and getting started section to dev doc
  • - #7296 <https://github.com/numpy/numpy/pull/7296>__: BUG: Revert part of #3907 which incorrectly propogated MaskedArray...
  • - #7299 <https://github.com/numpy/numpy/pull/7299>__: DOC: Fix mismatched variable names in docstrings.
  • - #7300 <https://github.com/numpy/numpy/pull/7300>__: DOC: dev: stop recommending keeping local master updated with...
  • - #7301 <https://github.com/numpy/numpy/pull/7301>__: DOC: Update release notes
  • - #7305 <https://github.com/numpy/numpy/pull/7305>__: BUG: Remove data race in mtrand: two threads could mutate the...
  • - #7307 <https://github.com/numpy/numpy/pull/7307>__: DOC: Missing some characters in link.
  • - #7308 <https://github.com/numpy/numpy/pull/7308>__: BUG: Incrementing the wrong reference on return
  • - #7310 <https://github.com/numpy/numpy/pull/7310>__: STY: Fix GitHub rendering of ordered lists >9
  • - #7311 <https://github.com/numpy/numpy/pull/7311>__: ENH Make _pointer_type_cache functional
  • - #7313 <https://github.com/numpy/numpy/pull/7313>__: DOC: corrected grammatical error in quickstart doc
  • - #7325 <https://github.com/numpy/numpy/pull/7325>__: BUG, MAINT: Improve fromnumeric.py interface for downstream compatibility
  • - #7328 <https://github.com/numpy/numpy/pull/7328>__: DEP: Deprecated using a float index in linspace
  • - #7331 <https://github.com/numpy/numpy/pull/7331>__: BUG: Add comment and fix MemoryError on win32
  • - #7332 <https://github.com/numpy/numpy/pull/7332>__: BUG: Check for no solution in np.irr Fixes #6744
  • - #7338 <https://github.com/numpy/numpy/pull/7338>__: TST: Install pytz in the CI.
  • - #7340 <https://github.com/numpy/numpy/pull/7340>__: DOC: Fixed math rendering in tensordot docs.
  • - #7341 <https://github.com/numpy/numpy/pull/7341>__: TST: Add test for #6469
  • - #7344 <https://github.com/numpy/numpy/pull/7344>__: DOC: Fix more typos in docs and comments.
  • - #7346 <https://github.com/numpy/numpy/pull/7346>__: ENH: Generalized flip
  • - #7347 <https://github.com/numpy/numpy/pull/7347>__: ENH Generalized rot90
  • - #7348 <https://github.com/numpy/numpy/pull/7348>__: MAINT: Removed extra space from ureduce
  • - #7349 <https://github.com/numpy/numpy/pull/7349>__: MAINT: Hide nan warnings for masked internal MA computations
  • - #7350 <https://github.com/numpy/numpy/pull/7350>__: BUG: MA ufuncs should set mask to False, not array([False])
  • - #7351 <https://github.com/numpy/numpy/pull/7351>__: TST: Fix some MA tests to avoid looking at the .data attribute
  • - #7358 <https://github.com/numpy/numpy/pull/7358>__: BUG: pull request related to the issue #7353
  • - #7359 <https://github.com/numpy/numpy/pull/7359>__: DOC: Clarify valid integer range for random.seed...
  • - #7361 <https://github.com/numpy/numpy/pull/7361>__: MAINT: Fix copy and paste oversight.
  • - #7363 <https://github.com/numpy/numpy/pull/7363>__: ENH: Make no unshare mask future warnings less noisy
  • - #7366 <https://github.com/numpy/numpy/pull/7366>__: TST: fix #6542, add tests to check non-iterable argument raises...
  • - #7373 <https://github.com/numpy/numpy/pull/7373>__: ENH: Add bitwise_and identity
  • - #7378 <https://github.com/numpy/numpy/pull/7378>__: ENH: added NumPy logo and separator
  • - #7382 <https://github.com/numpy/numpy/pull/7382>__: MAINT: cleanup np.average
  • - #7385 <https://github.com/numpy/numpy/pull/7385>__: DOC: note about wheels / windows wheels for pypi
  • - #7386 <https://github.com/numpy/numpy/pull/7386>__: ENH: Added label icon to Travis status
  • - #7397 <https://github.com/numpy/numpy/pull/7397>: BUG: incorrect type for objects whose __len fails
  • - #7398 <https://github.com/numpy/numpy/pull/7398>__: DOC: fix typo
  • - #7404 <https://github.com/numpy/numpy/pull/7404>__: MAINT: Use PyMem_RawMalloc on Python 3.4 and newer
  • - #7406 <https://github.com/numpy/numpy/pull/7406>__: ENH ufunc called on memmap return a ndarray
  • - #7407 <https://github.com/numpy/numpy/pull/7407>__: BUG: Fix decref before incref for in-place accumulate
  • - #7410 <https://github.com/numpy/numpy/pull/7410>__: DOC: add nanprod to the list of math routines
  • - #7414 <https://github.com/numpy/numpy/pull/7414>__: BUG: Tweak corrcoef
  • - #7415 <https://github.com/numpy/numpy/pull/7415>__: DOC: Documention fixes
  • - #7416 <https://github.com/numpy/numpy/pull/7416>__: BUG: Incorrect handling of range in histogram with automatic...
  • - #7418 <https://github.com/numpy/numpy/pull/7418>__: DOC: Minor typo fix, hermefik -> hermefit.
  • - #7421 <https://github.com/numpy/numpy/pull/7421>__: ENH: adds np.nancumsum and np.nancumprod
  • - #7423 <https://github.com/numpy/numpy/pull/7423>__: BUG: Ongoing fixes to PR#7416
  • - #7430 <https://github.com/numpy/numpy/pull/7430>__: DOC: Update 1.11.0-notes.
  • - #7433 <https://github.com/numpy/numpy/pull/7433>__: MAINT: FutureWarning for changes to np.average subclass handling
  • - #7437 <https://github.com/numpy/numpy/pull/7437>__: BUG: np.full now defaults to the filling value's dtype.
  • - #7438 <https://github.com/numpy/numpy/pull/7438>__: ENH: Allow rolling multiple axes at the same time.
  • - #7439 <https://github.com/numpy/numpy/pull/7439>__: BUG: Do not try sequence repeat unless necessary
  • - #7442 <https://github.com/numpy/numpy/pull/7442>__: MANT: Simplify diagonal length calculation logic
  • - #7445 <https://github.com/numpy/numpy/pull/7445>__: BUG: reference count leak in bincount, fixes #6805
  • - #7446 <https://github.com/numpy/numpy/pull/7446>__: DOC: ndarray typo fix
  • - #7447 <https://github.com/numpy/numpy/pull/7447>__: BUG: scalar integer negative powers gave wrong results.
  • - #7448 <https://github.com/numpy/numpy/pull/7448>__: DOC: array "See also" link to full and full_like instead of fill
  • - #7456 <https://github.com/numpy/numpy/pull/7456>__: BUG: int overflow in reshape, fixes #7455, fixes #7293
  • - #7463 <https://github.com/numpy/numpy/pull/7463>__: BUG: fix array too big error for wide dtypes.
  • - #7466 <https://github.com/numpy/numpy/pull/7466>__: BUG: segfault inplace object reduceat, fixes #7465
  • - #7468 <https://github.com/numpy/numpy/pull/7468>__: BUG: more on inplace reductions, fixes #615
  • - #7469 <https://github.com/numpy/numpy/pull/7469>__: MAINT: Update git .mailmap
  • - #7472 <https://github.com/numpy/numpy/pull/7472>__: MAINT: Update .mailmap.
  • - #7477 <https://github.com/numpy/numpy/pull/7477>__: MAINT: Yet more .mailmap updates for recent contributors.
  • - #7481 <https://github.com/numpy/numpy/pull/7481>__: BUG: Fix segfault in PyArray_OrderConverter
  • - #7482 <https://github.com/numpy/numpy/pull/7482>__: BUG: Memory Leak in _GenericBinaryOutFunction
  • - #7489 <https://github.com/numpy/numpy/pull/7489>__: ENH: Faster real_if_close.
  • - #7491 <https://github.com/numpy/numpy/pull/7491>__: DOC: Update subclassing doc regarding downstream compatibility
  • - #7496 <https://github.com/numpy/numpy/pull/7496>__: BUG: don't use pow for integer power ufunc loops.
  • - #7504 <https://github.com/numpy/numpy/pull/7504>__: DOC: remove "arr" from keepdims docstrings
  • - #7505 <https://github.com/numpy/numpy/pull/7505>__: MAIN: fix to #7382, make scl in np.average writeable
  • - #7507 <https://github.com/numpy/numpy/pull/7507>__: MAINT: Remove nose.SkipTest import.
  • - #7508 <https://github.com/numpy/numpy/pull/7508>__: DOC: link frompyfunc and vectorize
  • - #7511 <https://github.com/numpy/numpy/pull/7511>__: BUG: numpy.power(0, 0) should return 1
  • - #7515 <https://github.com/numpy/numpy/pull/7515>__: BUG: MaskedArray.count treats negative axes incorrectly
  • - #7518 <https://github.com/numpy/numpy/pull/7518>__: BUG: Extend glibc complex trig functions blacklist to glibc <...
  • - #7521 <https://github.com/numpy/numpy/pull/7521>__: DOC: rephrase writeup of memmap changes
  • - #7522 <https://github.com/numpy/numpy/pull/7522>__: BUG: Fixed iteration over additional bad commands
  • - #7526 <https://github.com/numpy/numpy/pull/7526>__: DOC: Removed an extra :const:
  • - #7529 <https://github.com/numpy/numpy/pull/7529>__: BUG: Floating exception with invalid axis in np.lexsort
  • - #7534 <https://github.com/numpy/numpy/pull/7534>__: MAINT: Update setup.py to reflect supported python versions.
  • - #7536 <https://github.com/numpy/numpy/pull/7536>__: MAINT: Always use PyCapsule instead of PyCObject in mtrand.pyx
  • - #7539 <https://github.com/numpy/numpy/pull/7539>__: MAINT: Cleanup of random stuff
  • - #7549 <https://github.com/numpy/numpy/pull/7549>__: BUG: allow graceful recovery for no Liux compiler
  • - #7562 <https://github.com/numpy/numpy/pull/7562>__: BUG: Fix test_from_object_array_unicode (test_defchararray.TestBasic)…
  • - #7565 <https://github.com/numpy/numpy/pull/7565>__: BUG: Fix test_ctypeslib and test_indexing for debug interpreter
  • - #7566 <https://github.com/numpy/numpy/pull/7566>__: MAINT: use manylinux1 wheel for cython
  • - #7568 <https://github.com/numpy/numpy/pull/7568>__: BUG: Fix a false positive OverflowError in Python 3.x when value above...
  • - #7579 <https://github.com/numpy/numpy/pull/7579>__: DOC: clarify purpose of Attributes section
  • - #7584 <https://github.com/numpy/numpy/pull/7584>__: BUG: fixes #7572, percent in path
  • - #7586 <https://github.com/numpy/numpy/pull/7586>__: ENH: Make np.ma.take works on scalars
  • - #7587 <https://github.com/numpy/numpy/pull/7587>__: BUG: linalg.norm(): Don't convert object arrays to float
  • - #7598 <https://github.com/numpy/numpy/pull/7598>__: BUG: Cast array size to int64 when loading from archive
  • - #7602 <https://github.com/numpy/numpy/pull/7602>__: DOC: Remove isreal and iscomplex from ufunc list
  • - #7605 <https://github.com/numpy/numpy/pull/7605>__: DOC: fix incorrect Gamma distribution parameterization comments
  • - #7609 <https://github.com/numpy/numpy/pull/7609>__: BUG: Fix TypeError when raising TypeError
  • - #7611 <https://github.com/numpy/numpy/pull/7611>__: ENH: expose test runner raise_warnings option
  • - #7614 <https://github.com/numpy/numpy/pull/7614>__: BLD: Avoid using os.spawnve in favor of os.spawnv in exec_command
  • - #7618 <https://github.com/numpy/numpy/pull/7618>__: BUG: distance arg of np.gradient must be scalar, fix docstring
  • - #7626 <https://github.com/numpy/numpy/pull/7626>__: DOC: RST definition list fixes
  • - #7627 <https://github.com/numpy/numpy/pull/7627>__: MAINT: unify tup processing, move tup use to after all PyTuple_SetItem...
  • - #7630 <https://github.com/numpy/numpy/pull/7630>__: MAINT: add ifdef around PyDictProxy_Check macro
  • - #7631 <https://github.com/numpy/numpy/pull/7631>__: MAINT: linalg: fix comment, simplify math
  • - #7634 <https://github.com/numpy/numpy/pull/7634>__: BLD: correct C compiler customization in system_info.py Closes...
  • - #7635 <https://github.com/numpy/numpy/pull/7635>__: BUG: ma.median alternate fix for #7592
  • - #7636 <https://github.com/numpy/numpy/pull/7636>__: MAINT: clean up testing.assert_raises_regexp, 2.6-specific code...
  • - #7637 <https://github.com/numpy/numpy/pull/7637>__: MAINT: clearer exception message when importing multiarray fails.
  • - #7639 <https://github.com/numpy/numpy/pull/7639>__: TST: fix a set of test errors in master.
  • - #7643 <https://github.com/numpy/numpy/pull/7643>__: DOC : minor changes to linspace docstring
  • - #7651 <https://github.com/numpy/numpy/pull/7651>__: BUG: one to any power is still 1. Broken edgecase for int arrays
  • - #7655 <https://github.com/numpy/numpy/pull/7655>__: BLD: Remove Intel compiler flag -xSSE4.2
  • - #7658 <https://github.com/numpy/numpy/pull/7658>__: BUG: fix incorrect printing of 1D masked arrays
  • - #7659 <https://github.com/numpy/numpy/pull/7659>__: BUG: Temporary fix for str(mvoid) for object field types
  • - #7664 <https://github.com/numpy/numpy/pull/7664>__: BUG: Fix unicode with byte swap transfer and copyswap
  • - #7667 <https://github.com/numpy/numpy/pull/7667>__: BUG: Restore histogram consistency
  • - #7668 <https://github.com/numpy/numpy/pull/7668>: ENH: Do not check the type of module.__dict explicit in test.
  • - #7669 <https://github.com/numpy/numpy/pull/7669>__: BUG: boolean assignment no GIL release when transfer needs API
  • - #7673 <https://github.com/numpy/numpy/pull/7673>__: DOC: Create Numpy 1.11.1 release notes.
  • - #7675 <https://github.com/numpy/numpy/pull/7675>__: BUG: fix handling of right edge of final bin.
  • - #7678 <https://github.com/numpy/numpy/pull/7678>__: BUG: Fix np.clip bug NaN handling for Visual Studio 2015
  • - #7679 <https://github.com/numpy/numpy/pull/7679>__: MAINT: Fix up C++ comment in arraytypes.c.src.
  • - #7681 <https://github.com/numpy/numpy/pull/7681>__: DOC: Update 1.11.1 release notes.
  • - #7686 <https://github.com/numpy/numpy/pull/7686>__: ENH: Changing FFT cache to a bounded LRU cache
  • - #7688 <https://github.com/numpy/numpy/pull/7688>__: DOC: fix broken genfromtxt examples in user guide. Closes gh-7662.
  • - #7689 <https://github.com/numpy/numpy/pull/7689>__: ENH: add correlate/convolve benchmarks.
  • - #7696 <https://github.com/numpy/numpy/pull/7696>__: DOC: update wheel build / upload instructions
  • - #7699 <https://github.com/numpy/numpy/pull/7699>__: BLD: preserve library order
  • - #7704 <https://github.com/numpy/numpy/pull/7704>__: ENH: Add bits attribute to np.finfo
  • - #7712 <https://github.com/numpy/numpy/pull/7712>__: BUG: Fix race condition with new FFT cache
  • - #7715 <https://github.com/numpy/numpy/pull/7715>__: BUG: Remove memory leak in np.place
  • - #7719 <https://github.com/numpy/numpy/pull/7719>__: BUG: Fix segfault in np.random.shuffle for arrays of different...
  • - #7723 <https://github.com/numpy/numpy/pull/7723>__: BLD: Change mkl_info.dir_env_var from MKL to MKLROOT
  • - #7727 <https://github.com/numpy/numpy/pull/7727>__: DOC: Corrections in Datetime Units-arrays.datetime.rst
  • - #7729 <https://github.com/numpy/numpy/pull/7729>__: DOC: fix typo in savetxt docstring (closes #7620)
  • - #7733 <https://github.com/numpy/numpy/pull/7733>__: DOC: Fix order='A' docs of np.array.
  • - #7734 <https://github.com/numpy/numpy/pull/7734>__: ENH: Add polyrootval to numpy.polynomial
  • - #7735 <https://github.com/numpy/numpy/pull/7735>__: BUG: fix issue on OS X with Python 3.x where npymath.ini was...
  • - #7739 <https://github.com/numpy/numpy/pull/7739>__: DOC: Mention the changes of #6430 in the release notes.
  • - #7740 <https://github.com/numpy/numpy/pull/7740>__: DOC: add reference to poisson rng
  • - #7743 <https://github.com/numpy/numpy/pull/7743>__: DEP: deprecate Numeric-style typecodes, closes #2148
  • - #7744 <https://github.com/numpy/numpy/pull/7744>__: DOC: Remove "ones_like" from ufuncs list (it is not)
  • - #7746 <https://github.com/numpy/numpy/pull/7746>__: DOC: Clarify the effect of rcond in numpy.linalg.lstsq.
  • - #7747 <https://github.com/numpy/numpy/pull/7747>__: BUG: Make sure we don't divide by zero
  • - #7748 <https://github.com/numpy/numpy/pull/7748>__: DOC: Update float32 mean example in docstring
  • - #7754 <https://github.com/numpy/numpy/pull/7754>__: ENH: Add broadcast.ndim to match code elsewhere.
  • - #7757 <https://github.com/numpy/numpy/pull/7757>__: BUG: Invalid read of size 4 in PyArray_FromFile
  • - #7759 <https://github.com/numpy/numpy/pull/7759>__: BUG: Fix numpy.i support for numpy API < 1.7.
  • - #7760 <https://github.com/numpy/numpy/pull/7760>__: ENH: Make assert_almost_equal & assert_array_almost_equal consistent.
  • - #7766 <https://github.com/numpy/numpy/pull/7766>__: MAINT: fix an English typo
  • - #7771 <https://github.com/numpy/numpy/pull/7771>__: DOC: link geomspace from logspace
  • - #7773 <https://github.com/numpy/numpy/pull/7773>__: DOC: Remove a redundant the
  • - #7777 <https://github.com/numpy/numpy/pull/7777>__: DOC: Update Numpy 1.11.1 release notes.
  • - #7785 <https://github.com/numpy/numpy/pull/7785>__: DOC: update wheel building procedure for release
  • - #7789 <https://github.com/numpy/numpy/pull/7789>__: DOC: add note of 64-bit wheels on Windows
  • - #7791 <https://github.com/numpy/numpy/pull/7791>__: BUG: f2py.compile issues (#7683)
  • - #7799 <https://github.com/numpy/numpy/pull/7799>__: BUG: "lambda" is not allowed to use as keyword arguments in a sample...
  • - #7803 <https://github.com/numpy/numpy/pull/7803>__: BUG: interpret 'c' PEP3118/struct type as 'S1'.
  • - #7807 <https://github.com/numpy/numpy/pull/7807>__: DOC: Misplaced parens in formula
  • - #7817 <https://github.com/numpy/numpy/pull/7817>__: BUG: Make sure npy_mul_with_overflow_ detects overflow.
  • - #7818 <https://github.com/numpy/numpy/pull/7818>__: BUG: numpy/distutils/misc_util.py fix for #7809: check that _tmpdirs...
  • - #7820 <https://github.com/numpy/numpy/pull/7820>__: MAINT: Allocate fewer bytes for empty arrays.
  • - #7823 <https://github.com/numpy/numpy/pull/7823>__: BUG: Fixed masked array behavior for scalar inputs to np.ma.atleast_*d
  • - #7834 <https://github.com/numpy/numpy/pull/7834>__: DOC: Added an example
  • - #7839 <https://github.com/numpy/numpy/pull/7839>__: ENH: Pypy fixes
  • - #7840 <https://github.com/numpy/numpy/pull/7840>__: BUG: Fix ATLAS version detection
  • - #7842 <https://github.com/numpy/numpy/pull/7842>__: MAINT: Fix versionadded tags
  • - #7848 <https://github.com/numpy/numpy/pull/7848>__: MAINT: Fix remaining uses of deprecated Python imp module.
  • - #7853 <https://github.com/numpy/numpy/pull/7853>__: BUG: Make sure numpy globals keep identity after reload.
  • - #7863 <https://github.com/numpy/numpy/pull/7863>__: ENH: turn quicksort into introsort
  • - #7866 <https://github.com/numpy/numpy/pull/7866>__: DOC: Document runtests extra argv
  • - #7871 <https://github.com/numpy/numpy/pull/7871>__: BUG: handle introsort depth limit properly
  • - #7879 <https://github.com/numpy/numpy/pull/7879>__: DOC: fix typo in documentation of loadtxt (closes #7878)
  • - #7885 <https://github.com/numpy/numpy/pull/7885>__: ENH: Handle NetBSD specific <sys/endian.h>
  • - #7889 <https://github.com/numpy/numpy/pull/7889>__: DOC: #7881. Fix link to record arrays
  • - #7894 <https://github.com/numpy/numpy/pull/7894>__: BUG: construct ma.array from np.array which contains...
  • - #7898 <https://github.com/numpy/numpy/pull/7898>__: MAINT: Spelling and grammar fix.
  • - #7903 <https://github.com/numpy/numpy/pull/7903>__: BUG: fix float16 type not being called due to wrong ordering
  • - #7908 <https://github.com/numpy/numpy/pull/7908>__: BLD: Fixed detection for recent MKL versions
  • - #7911 <https://github.com/numpy/numpy/pull/7911>__: BUG: fix for issue#7835 (ma.median of 1d)
  • - #7912 <https://github.com/numpy/numpy/pull/7912>__: ENH: skip or avoid gc/objectmodel differences btwn pypy and cpython
  • - #7918 <https://github.com/numpy/numpy/pull/7918>__: ENH: allow numpy.apply_along_axis() to work with ndarray subclasses
  • - #7922 <https://github.com/numpy/numpy/pull/7922>__: ENH: Add ma.convolve and ma.correlate for #6458
  • - #7925 <https://github.com/numpy/numpy/pull/7925>__: WNH: Monkey-patch _msvccompile.gen_lib_option like any other compilators
  • - #7931 <https://github.com/numpy/numpy/pull/7931>__: BUG: Check for HAVE_LDOUBLE_DOUBLE_DOUBLE_LE in npy_math_complex.
  • - #7936 <https://github.com/numpy/numpy/pull/7936>__: ENH: improve duck typing inside iscomplexobj
  • - #7937 <https://github.com/numpy/numpy/pull/7937>__: BUG: Guard against buggy comparisons in generic quicksort.
  • - #7938 <https://github.com/numpy/numpy/pull/7938>__: DOC: add cbrt to math summary page
  • - #7941 <https://github.com/numpy/numpy/pull/7941>__: BUG: Make sure numpy globals keep identity after reload.
  • - #7943 <https://github.com/numpy/numpy/pull/7943>__: DOC: #7927. Remove deprecated note for memmap relevant for Python...
  • - #7952 <https://github.com/numpy/numpy/pull/7952>__: BUG: Use keyword arguments to initialize Extension base class.
  • - #7956 <https://github.com/numpy/numpy/pull/7956>: BLD: remove __NUMPY_SETUP from builtins at end of setup.py
  • - #7963 <https://github.com/numpy/numpy/pull/7963>__: BUG: MSVCCompiler grows 'lib' & 'include' env strings exponentially.
  • - #7965 <https://github.com/numpy/numpy/pull/7965>__: BUG: cannot modify tuple after use
  • - #7976 <https://github.com/numpy/numpy/pull/7976>__: DOC: Fixed documented dimension of return value
  • - #7977 <https://github.com/numpy/numpy/pull/7977>__: DOC: Create 1.11.2 release notes.
  • - #7979 <https://github.com/numpy/numpy/pull/7979>__: DOC: Corrected allowed keywords in add_(installed_)library
  • - #7980 <https://github.com/numpy/numpy/pull/7980>__: ENH: Add ability to runtime select ufunc loops, add AVX2 integer...
  • - #7985 <https://github.com/numpy/numpy/pull/7985>__: ENH: Add new warning suppression/filtering context
  • - #7987 <https://github.com/numpy/numpy/pull/7987>__: DOC: See also np.load and np.memmap in np.lib.format.open_memmap
  • - #7988 <https://github.com/numpy/numpy/pull/7988>__: DOC: Include docstring for cbrt, spacing and fabs in documentation
  • - #7999 <https://github.com/numpy/numpy/pull/7999>__: ENH: add inplace cases to fast ufunc loop macros
  • - #8006 <https://github.com/numpy/numpy/pull/8006>__: DOC: Update 1.11.2 release notes.
  • - #8008 <https://github.com/numpy/numpy/pull/8008>__: MAINT: Remove leftover imp module imports.
  • - #8009 <https://github.com/numpy/numpy/pull/8009>__: DOC: Fixed three typos in the c-info.ufunc-tutorial
  • - #8011 <https://github.com/numpy/numpy/pull/8011>__: DOC: Update 1.11.2 release notes.
  • - #8014 <https://github.com/numpy/numpy/pull/8014>__: BUG: Fix fid.close() to use os.close(fid)
  • - #8016 <https://github.com/numpy/numpy/pull/8016>__: BUG: Fix numpy.ma.median.
  • - #8018 <https://github.com/numpy/numpy/pull/8018>__: BUG: Fixes return for np.ma.count if keepdims is True and axis...
  • - #8021 <https://github.com/numpy/numpy/pull/8021>__: DOC: change all non-code instances of Numpy to NumPy
  • - #8027 <https://github.com/numpy/numpy/pull/8027>__: ENH: Add platform indepedent lib dir to PYTHONPATH
  • - #8028 <https://github.com/numpy/numpy/pull/8028>__: DOC: Update 1.11.2 release notes.
  • - #8030 <https://github.com/numpy/numpy/pull/8030>__: BUG: fix np.ma.median with only one non-masked value and an axis...
  • - #8038 <https://github.com/numpy/numpy/pull/8038>__: MAINT: Update error message in rollaxis.
  • - #8040 <https://github.com/numpy/numpy/pull/8040>__: DOC: Update add_newdocs.py
  • - #8042 <https://github.com/numpy/numpy/pull/8042>__: BUG: core: fix bug in NpyIter buffering with discontinuous arrays
  • - #8045 <https://github.com/numpy/numpy/pull/8045>__: DOC: Update 1.11.2 release notes.
  • - #8050 <https://github.com/numpy/numpy/pull/8050>__: BUG: remove refcount semantics, now a.resize() almost always requires...
  • - #8051 <https://github.com/numpy/numpy/pull/8051>__: ENH: Clear signaling NaN exceptions
  • - #8054 <https://github.com/numpy/numpy/pull/8054>__: ENH: add signature argument to vectorize for vectorizing like...
  • - #8057 <https://github.com/numpy/numpy/pull/8057>__: BUG: lib: Simplify (and fix) pad's handling of the pad_width
  • - #8061 <https://github.com/numpy/numpy/pull/8061>__: BUG : financial.pmt modifies input (issue #8055)
  • - #8064 <https://github.com/numpy/numpy/pull/8064>__: MAINT: Add PMIP files to .gitignore
  • - #8065 <https://github.com/numpy/numpy/pull/8065>__: BUG: Assert fromfile ending earlier in pyx_processing
  • - #8066 <https://github.com/numpy/numpy/pull/8066>__: BUG, TST: Fix python3-dbg bug in Travis script
  • - #8071 <https://github.com/numpy/numpy/pull/8071>__: MAINT: Add Tempita to randint helpers
  • - #8075 <https://github.com/numpy/numpy/pull/8075>__: DOC: Fix description of isinf in nan_to_num
  • - #8080 <https://github.com/numpy/numpy/pull/8080>__: BUG: non-integers can end up in dtype offsets
  • - #8081 <https://github.com/numpy/numpy/pull/8081>__: DOC: Update outdated Nose URL to nose.readthedocs.io
  • - #8083 <https://github.com/numpy/numpy/pull/8083>__: ENH: Deprecation warnings for / integer division when running...
  • - #8084 <https://github.com/numpy/numpy/pull/8084>__: DOC: Fix erroneous return type description for np.roots.
  • - #8087 <https://github.com/numpy/numpy/pull/8087>__: BUG: financial.pmt modifies input #8055
  • - #8088 <https://github.com/numpy/numpy/pull/8088>__: MAINT: Remove duplicate randint helpers code.
  • - #8093 <https://github.com/numpy/numpy/pull/8093>__: MAINT: fix assert_raises_regex when used as a context manager
  • - #8096 <https://github.com/numpy/numpy/pull/8096>__: ENH: Vendorize tempita.
  • - #8098 <https://github.com/numpy/numpy/pull/8098>__: DOC: Enhance description/usage for np.linalg.eig*h
  • - #8103 <https://github.com/numpy/numpy/pull/8103>__: ENH: Pypy fixes
  • - #8104 <https://github.com/numpy/numpy/pull/8104>__: ENH: Fix test code on cpuinfo's main function
  • - #8107 <https://github.com/numpy/numpy/pull/8107>__: BUG: Fix array printing with precision=0.
  • - #8109 <https://github.com/numpy/numpy/pull/8109>__: BUG: Fix bug in ravel_multi_index for big indices (Issue #7546)
  • - #8110 <https://github.com/numpy/numpy/pull/8110>__: BUG: distutils: fix issue with rpath in fcompiler/gnu.py
  • - #8111 <https://github.com/numpy/numpy/pull/8111>__: ENH: Add a tool for release authors and PRs.
  • - #8112 <https://github.com/numpy/numpy/pull/8112>__: DOC: Fix "See also" links in linalg.
  • - #8114 <https://github.com/numpy/numpy/pull/8114>__: BUG: core: add missing error check after PyLong_AsSsize_t
  • - #8121 <https://github.com/numpy/numpy/pull/8121>__: DOC: Improve histogram2d() example.
  • - #8122 <https://github.com/numpy/numpy/pull/8122>__: BUG: Fix broken pickle in MaskedArray when dtype is object (Return...
  • - #8124 <https://github.com/numpy/numpy/pull/8124>__: BUG: Fixed build break
  • - #8125 <https://github.com/numpy/numpy/pull/8125>__: BUG: Fixed deepcopy of F-order object arrays.
  • - #8127 <https://github.com/numpy/numpy/pull/8127>__: BUG: integers to a negative integer powers should error.
  • - #8141 <https://github.com/numpy/numpy/pull/8141>__: ENH: improve configure checks for broken systems
  • - #8142 <https://github.com/numpy/numpy/pull/8142>__: BUG: np.ma.mean and var should return scalar if no mask
  • - #8148 <https://github.com/numpy/numpy/pull/8148>__: BUG: import full module path in npy_load_module
  • - #8153 <https://github.com/numpy/numpy/pull/8153>__: MAINT: Expose void-scalar "base" attribute in python
  • - #8156 <https://github.com/numpy/numpy/pull/8156>__: DOC: added example with empty indices for a scalar, #8138
  • - #8160 <https://github.com/numpy/numpy/pull/8160>__: BUG: fix _array2string for structured array (issue #5692)
  • - #8164 <https://github.com/numpy/numpy/pull/8164>__: MAINT: Update mailmap for NumPy 1.12.0
  • - #8165 <https://github.com/numpy/numpy/pull/8165>__: BUG: assert_allclose(..., equal_nan=False) doesn't...
  • - #8167 <https://github.com/numpy/numpy/pull/8167>__: DOC: Clarify when PyArray_{Max, Min, Ptp} return...
  • - #8168 <https://github.com/numpy/numpy/pull/8168>__: DOC: Minor spelling fix in genfromtxt() docstring.
  • - #8173 <https://github.com/numpy/numpy/pull/8173>__: BLD: Enable build on AIX
  • - #8174 <https://github.com/numpy/numpy/pull/8174>__: DOC: warn that dtype.descr is only for use in PEP3118
  • - #8177 <https://github.com/numpy/numpy/pull/8177>__: MAINT: Add python 3.6 support to suppress_warnings
  • - #8178 <https://github.com/numpy/numpy/pull/8178>__: MAINT: Fix ResourceWarning new in Python 3.6.
  • - #8180 <https://github.com/numpy/numpy/pull/8180>__: BUG: protect stolen ref by PyArray_NewFromDescr in array_empty
  • - #8181 <https://github.com/numpy/numpy/pull/8181>__: ENH: Improve announce to find github squash-merge commits.
  • - #8182 <https://github.com/numpy/numpy/pull/8182>__: MAINT: Update .mailmap
  • - #8183 <https://github.com/numpy/numpy/pull/8183>__: MAINT: Ediff1d performance
  • - #8184 <https://github.com/numpy/numpy/pull/8184>__: MAINT: make assert_allclose behavior on nans match pre 1.12
  • - #8188 <https://github.com/numpy/numpy/pull/8188>__: DOC: 'highest' is exclusive for randint()
  • - #8189 <https://github.com/numpy/numpy/pull/8189>__: BUG: setfield should raise if arr is not writeable
  • - #8190 <https://github.com/numpy/numpy/pull/8190>__: ENH: Add a float_power function with at least float64 precision.
  • - #8197 <https://github.com/numpy/numpy/pull/8197>__: DOC: Add missing arguments to np.ufunc.outer
  • - #8198 <https://github.com/numpy/numpy/pull/8198>__: DEP: Deprecate the keepdims argument to accumulate
  • - #8199 <https://github.com/numpy/numpy/pull/8199>__: MAINT: change path to env in distutils.system_info. Closes gh-8195.
  • - #8200 <https://github.com/numpy/numpy/pull/8200>__: BUG: Fix structured array format functions
  • - #8202 <https://github.com/numpy/numpy/pull/8202>__: ENH: specialize name of dev package by interpreter
  • - #8205 <https://github.com/numpy/numpy/pull/8205>__: DOC: change development instructions from SSH to HTTPS access.
  • - #8216 <https://github.com/numpy/numpy/pull/8216>__: DOC: Patch doc errors for atleast_nd and frombuffer
  • - #8218 <https://github.com/numpy/numpy/pull/8218>__: BUG: ediff1d should return subclasses
  • - #8219 <https://github.com/numpy/numpy/pull/8219>__: DOC: Turn SciPy references into links.
  • - #8222 <https://github.com/numpy/numpy/pull/8222>__: ENH: Make numpy.mean() do more precise computation
  • - #8227 <https://github.com/numpy/numpy/pull/8227>__: BUG: Better check for invalid bounds in np.random.uniform.
  • - #8231 <https://github.com/numpy/numpy/pull/8231>__: ENH: Refactor numpy ** operators for numpy scalar integer powers
  • - #8234 <https://github.com/numpy/numpy/pull/8234>__: DOC: Clarified when a copy is made in numpy.asarray
  • - #8236 <https://github.com/numpy/numpy/pull/8236>__: DOC: Fix documentation pull requests.
  • - #8238 <https://github.com/numpy/numpy/pull/8238>__: MAINT: Update pavement.py
  • - #8239 <https://github.com/numpy/numpy/pull/8239>__: ENH: Improve announce tool.
  • - #8240 <https://github.com/numpy/numpy/pull/8240>__: REL: Prepare for 1.12.x branch
  • - #8243 <https://github.com/numpy/numpy/pull/8243>__: BUG: Update operator ** tests for new behavior.
  • - #8246 <https://github.com/numpy/numpy/pull/8246>__: REL: Reset strides for RELAXED_STRIDE_CHECKING for 1.12 releases.
  • - #8265 <https://github.com/numpy/numpy/pull/8265>__: BUG: np.piecewise not working for scalars
  • - #8272 <https://github.com/numpy/numpy/pull/8272>__: TST: Path test should resolve symlinks when comparing

Checksums

MD5


9db1672d3a545e7e3bccc350210ffcd4  numpy-1.12.0b1-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
f91f50369bc896a575a2a1eaadcc8ab2  numpy-1.12.0b1-cp27-cp27m-manylinux1_i686.whl
953b8946b77012a376b91ed689addafd  numpy-1.12.0b1-cp27-cp27m-manylinux1_x86_64.whl
940abb77a89a8570235b0ff53cd15f1d  numpy-1.12.0b1-cp27-cp27mu-manylinux1_i686.whl
e6926ac2886c71d38204dd2873fd1950  numpy-1.12.0b1-cp27-cp27mu-manylinux1_x86_64.whl
759264fa005e18e1046aca0122315484  numpy-1.12.0b1-cp27-none-win32.whl
3d3f2cbdfe770d4200497432c7c3c871  numpy-1.12.0b1-cp27-none-win_amd64.whl
e5d0ed6bf3c3dc5f858303590163df20  numpy-1.12.0b1-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
0908b7d3af9f025e9419461d0bd36c65  numpy-1.12.0b1-cp34-cp34m-manylinux1_i686.whl
b13d54e4aa09c11c09e12460099aec70  numpy-1.12.0b1-cp34-cp34m-manylinux1_x86_64.whl
6578f0a1a1dd38c56dd66828be5ed3f9  numpy-1.12.0b1-cp34-none-win32.whl
4178a363db69c78df60326a18ed435d2  numpy-1.12.0b1-cp34-none-win_amd64.whl
b440ecd06ba4254b7d7aae0be9d994d9  numpy-1.12.0b1-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
2100e956744bb94ba5746c19fb65e1ed  numpy-1.12.0b1-cp35-cp35m-manylinux1_i686.whl
1ee238ed2ce86b0d28c8a35cf436e344  numpy-1.12.0b1-cp35-cp35m-manylinux1_x86_64.whl
9a6c08a4bc652c2025e120f2f7b106a4  numpy-1.12.0b1-cp35-none-win32.whl
1c791de8788ef42d0aa7d454ab91b24a  numpy-1.12.0b1-cp35-none-win_amd64.whl
2dd8eebffdf392312267ed1857b644f9  numpy-1.12.0b1.tar.gz
221c612e516af83d9a0d5ca4703b81b9  numpy-1.12.0b1.zip

SHA256

f3d9db7037ac9c22b27928f0fc5c7a1f4dca87c4b518033897348aeba3d0866f numpy-1.12.0b1-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
f6d609ccb17fce9254a29bcee80177a3aa56c7f7d89d2f170893a99450e379dd numpy-1.12.0b1-cp27-cp27m-manylinux1_i686.whl
6c7d0633d8ac8ff6f367bc794415d74e86a88fba6d5283c7da1b1410ab099a6a numpy-1.12.0b1-cp27-cp27m-manylinux1_x86_64.whl
fb13317be00fe93a174dcc9f01c04b37fa9eb025907c593f5a793f7ca8b73ce9 numpy-1.12.0b1-cp27-cp27mu-manylinux1_i686.whl
342bd6ecdc492a1b1508bb39d0275165a44df40a775c0ba8df19e2973f34e3ab numpy-1.12.0b1-cp27-cp27mu-manylinux1_x86_64.whl
e3b1fa4664bb9ff2cb6a8def62b7e878526691451bf8a2d767bcf29ffe969d82 numpy-1.12.0b1-cp27-none-win32.whl
5c62dd7bf58a59092084429510aa5d3bb67e2014e8e5d7da7b6a0dc99baa1244 numpy-1.12.0b1-cp27-none-win_amd64.whl
e866b315d118d086ff27923faaf29a7b245d2f6ab3fe3db21d6ac43deee99f7a numpy-1.12.0b1-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
13626c6568b8b0db441309e7434bb739c3aa1f4c795e3dbe49f44b02cfae804d numpy-1.12.0b1-cp34-cp34m-manylinux1_i686.whl
82d91effc5d84d72a144aa504b474004c7b9132d1f03aafc50598b3f871ef54e numpy-1.12.0b1-cp34-cp34m-manylinux1_x86_64.whl
9b9ef17dab8ebf7d758ca6385c34e44374d5b6f7e4bfc9eec96f62f49f73d316 numpy-1.12.0b1-cp34-none-win32.whl
d0718dcf8e12e65136234268fd7d6048f6ce0f90a86458d58618a9403b9935d8 numpy-1.12.0b1-cp34-none-win_amd64.whl
8ae68692f2f809ebda5dae72695b55e66a38c77f30a2dd6c41796d561ac889ef numpy-1.12.0b1-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
7809a495a80fe47e46c4773d1e48f292559eb1a3b9e6555dafc53aa49288a14e numpy-1.12.0b1-cp35-cp35m-manylinux1_i686.whl
93f7631943ea1253c190ade59101c581ea0707e8b764c5eb54e009fd93d607ca numpy-1.12.0b1-cp35-cp35m-manylinux1_x86_64.whl
12f635dce407964db116750e528a3cef11cbcb93841797278fd927843338c491 numpy-1.12.0b1-cp35-none-win32.whl
3f70061be058cff0483b499c8c61dbf06cbe29bfaf47a420f582e8d8be044c17 numpy-1.12.0b1-cp35-none-win_amd64.whl
bf0c0b0817109c60132d7515683089da53ccd5bea77ecfde1fd2bd3a06ab931f numpy-1.12.0b1.tar.gz
fdd419aecaf692c31037ed661e7aee56def99032b030b352065106b42ba8a0e3 numpy-1.12.0b1.zip
-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJYLTeMAAoJEGefIoN3xSR757gIAI7c45LamIbRyNooEiKjGuNQ
Zp0WKoQQPR0MZyE1THLg6eKNii2wlBYOnnlXPWClbLhLNeuPSTqxLbI+8OgOb1Gm
bN+ULd1GyW2nO70StPeENVBe8dljEhxMKhFzNl7x23v5uViaMNs4EI2BICVqG45p
K4PLkPewGWwAe6EHrwWATqQspnkZP50KgxOSe/h9MJ10AbUXlEtDPletr4Ducx3a
B9kAm5CLH81UTuEbKa3oAuR9WJNWt8boG6h9dsurorCroZhrdu4KA4PGk6Txze9q
AFzxurYyD9pFGtKWIdD2HJNb6s+BG5uco6sTm+Axkvdi5JF3PFwu6SUKNtW/fE0=
=hY6d
-----END PGP SIGNATURE-----