In response to some work on improving the documentation of `numpy.linalg`
and how it compares to `scipy.linalg`, Kevin Sheppard suggested that the
documentation of the module `numpy.dual` should also be improved. When I
mentioned this suggestion in the community meeting on December 11, it was
suggested that we should probably deprecate `numpy.dual`.
I think some current NumPy developers (myself included at the time the
topic came up) are unfamiliar with the history and purpose of this module,
so I spent some time reading code and github issues and wrote up some
notes. These notes are available at
If you are not familiar with `numpy.dual`, you might find those notes
Now that I know a bit more about `numpy.dual`, I'm not sure it should be
deprecated. It provides a hook for other libraries to selectively replace
the use of the exposed functions in internal NumPy code, so if a library
has a better version of, say, `linalg.eigh`, it can configure `numpy.dual`
to use its version. Then, for example, NumPy multivariate normal
distribution code could benefit from the use of that library's version of
The NumPy documentation of `numpy.dual` refers specifically to SciPy, but
it could be used by any library. Does anyone know if any other libraries
use `register_func` to put their functions into the `numpy.dual` namespace?
SciPy currently registers some functions, but there is an open issue in
which it is proposed that SciPy no longer register its functions with
This email is to start the discussion of the future of `numpy.dual`.
Some of the options:
1. Quietly continue the status quo.
2. Deprecate `numpy.dual`.
3. Spend time improving the documentation of this feature, and
perhaps even expand the functions that are supported.
What do you think? For those who were involved in the creation of
`numpy.dual`: is it working out like you expected? If not, is it
worthwhile maintaining it?
After the holiday break, there will be a NumPy Community meeting
Wednesday January 8 at 11 am Pacific Time. Everyone is invited to join
in and edit the work-in-progress meeting topics and notes:
This is a version bump to add support for Python 3.8 and NumPy 1.18. We are
removing support for Python 3.4.
Project documentation is available at:
Changes from 2.7.0 to 2.7.1
- Python 3.8 support has been added.
- Python 3.4 support is discontinued.
- The tests are now compatible with NumPy 1.18.
- `site.cfg.example` was updated to use the `libraries` tag instead of
which is recommended for newer version of NumPy.
Numexpr is a fast numerical expression evaluator for NumPy. With it,
expressions that operate on arrays (like "3*a+4*b") are accelerated
and use less memory than doing the same calculation in Python.
It has multi-threaded capabilities, as well as support for Intel's
MKL (Math Kernel Library), which allows an extremely fast evaluation
of transcendental functions (sin, cos, tan, exp, log...) while
squeezing the last drop of performance out of your multi-core
processors. Look here for a some benchmarks of numexpr using MKL:
Its only dependency is NumPy (MKL is optional), so it works well as an
easy-to-deploy, easy-to-use, computational engine for projects that
don't want to adopt other solutions requiring more heavy dependencies.
Where I can find Numexpr?
The project is hosted at GitHub in:
You can get the packages from PyPI as well (but not for RC releases):
Documentation is hosted at:
Share your experience
Let us know of any bugs, suggestions, gripes, kudos, etc. you may
A feature to implement functions converting last axes of object arrays to
and from lists has been requested in the following issue:
I've implemented this feature, and the code can be viewed in the following
The original issue asked for functions operating on just the last axis of
this array, but I decided to allow to choose a specific axis for conversion
from array of objects to array of lists, because this allows for the
functions to be somewhat inverses of eachother. The linked pull request
provides an example showing where the inverse property wouldn't hold with
only last axis conversions.
I would like to hear your opinions about this, and if it's agreed upon,also
discuss the choice of the default value of the axis parameter. At the
moment it's the first axis, but I assume that this being the last axis
would also make sense.
Also regarding a bit more cosmetic issues, the names of the functions and
their place in the project (currently lib/shape_base.py) should probably be
discussed, as their current names are long and clunky, yet I haven't come
up with anything prettier, that would also be this expressive.
Please note that this is my first contribution to the project and so I'd
also appreciate a little help regarding the failing tests on the pull
request, locally everything passed so I'm not sure what's wrong.
On behalf of the NumPy team I am pleased to announce that NumPy 1.17.5 has
been released. This release fixes bugs reported against the 1.17.4 release.
The supported Python versions are 3.5-3.7. This is the last planned release
that supports Python 3.5. Wheels for this release can be downloaded from
PyPI <https://pypi.org/project/numpy/1.17.5>, source archives and release
notes are available from Github
developers building this release should use Cython >= 0.29.14 and, if using
OpenBLAS, OpenBLAS >= v0.3.7.
It is recommended that developers interested in the new random bit
generators upgrade to the NumPy 1.18.x series, as it has updated
documentation and many small improvements.
- The ``np.testing.utils`` functions have been updated from 1.19.0-dev0.
This improves the function documentation and error messages as well
extending the ``assert_array_compare`` function to additional types.
A total of 6 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Charles Harris
- Eric Wieser
- Ilhan Polat
- Matti Picus
- Michael Hudson-Doyle
- Ralf Gommers
*Pull requests merged*
A total of 8 pull requests were merged for this release.
- `#14593 <https://github.com/numpy/numpy/pull/14593>`__: MAINT:
backport Cython API cleanup to 1.17.x, remove docs
- `#14937 <https://github.com/numpy/numpy/pull/14937>`__: BUG: fix
integer size confusion in handling array's ndmin argument
- `#14939 <https://github.com/numpy/numpy/pull/14939>`__: BUILD: remove
SSE2 flag from numpy.random builds
- `#14993 <https://github.com/numpy/numpy/pull/14993>`__: MAINT: Added
Python3.8 branch to dll lib discovery
- `#15038 <https://github.com/numpy/numpy/pull/15038>`__: BUG: Fix
refcounting in ufunc object loops
- `#15067 <https://github.com/numpy/numpy/pull/15067>`__: BUG:
Exceptions tracebacks are dropped
- `#15175 <https://github.com/numpy/numpy/pull/15175>`__: ENH: Backport
improvements to testing functions.
- `#15213 <https://github.com/numpy/numpy/pull/15213>`__: REL: Prepare
for the NumPy 1.17.5 release.