Bottleneck

Latest version: v1.4.2

Safety actively analyzes 688792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

1.2.1

----------------

*Release date: 2017-05-15*

This release adds support for NumPy's relaxed strides checking and
fixes a few bugs.

**Bug Fixes**

- Installing bottleneck when two versions of NumPy are present (:issue:`156`)
- Compiling on Ubuntu 14.04 inside a Windows 7 WMware (:issue:`157`)
- Occasional segmentation fault in :func:`bn.nanargmin`, :func:`nanargmax`, :func:`median`,
and :func:`nanmedian` when all of the following conditions are met:
axis is None, input array is 2d or greater, and input array is not C
contiguous. (:issue:`159`)
- Reducing np.array([2**31], dtype=np.int64) overflows on Windows (:issue:`163`)

**Contributors**

.. contributors:: v1.2.0..v1.2.1

1.2.0

----------------

*Release date: 2016-10-20*

This release is a complete rewrite of Bottleneck.

**Port to C**

- Bottleneck is now written in C
- Cython is no longer a dependency
- Source tarball size reduced by 80%
- Build time reduced by 66%
- Install size reduced by 45%

**Redesign**

- Besides porting to C, much of bottleneck has been redesigned to be
simpler and faster. For example, bottleneck now uses its own N-dimensional
array iterators, reducing function call overhead.

**New features**

- The new function bench_detailed runs a detailed performance benchmark on
a single bottleneck function.
- Bottleneck can be installed on systems that do not yet have NumPy
installed. Previously that only worked on some systems.

**Beware**

- Functions partsort and argpartsort have been renamed to partition and
argpartition to match NumPy. Additionally the meaning of the input
arguments have changed: :func:`bn.partsort(a, n)` is now equivalent to
:func:`bn.partition(a, kth=n-1)`. Similarly for bn.argpartition.
- The keyword for array input has been changed from `arr` to `a` in all
functions. It now matches NumPy.

**Thanks**

- Moritz E. Beber: continuous integration with AppVeyor
- Christoph Gohlke: Windows compatibility
- Jennifer Olsen: comments and suggestions
- A special thanks to the Cython developers. The quickest way to appreciate
their work is to remove Cython from your project. It is not easy.

**Contributors**

.. contributors:: v1.1.0..v1.2.0

1.1.0

----------------

*Release date: 2016-06-22*

This release makes Bottleneck more robust, releases GIL, adds new functions.

**More Robust**

- :func:`bn.move_median` can now handle NaNs and `min_count` parameter
- :func:`bn.move_std` is slower but numerically more stable
- Bottleneck no longer crashes on byte-swapped input arrays

**Faster**

- All Bottleneck functions release the GIL
- median is faster if the input array contains NaN
- move_median is faster for input arrays that contain lots of NaNs
- No speed penalty for median, nanmedian, nanargmin, nanargmax for Fortran
ordered input arrays when axis is None
- Function call overhead cut in half for reduction along all axes (axis=None)
if the input array satisfies at least one of the following properties: 1d,
C contiguous, F contiguous
- Reduction along all axes (axis=None) is more than twice as fast for long,
narrow input arrays such as a (1000000, 2) C contiguous array and a
(2, 1000000) F contiguous array

**New Functions**

- move_var
- move_argmin
- move_argmax
- move_rank
- push

**Beware**

- :func:`bn.median` now returns NaN for a slice that contains one or more NaNs
- Instead of using the distutils default, the '-O2' C compiler flag is forced
- :func:`bn.move_std` output changed when mean is large compared to standard deviation
- Fixed: Non-accelerated moving window functions used min_count incorrectly
- :func:`bn.move_median` is a bit slower for float input arrays that do not contain NaN

**Thanks**

Alphabeticaly by last name

- Alessandro Amici worked on setup.py
- Pietro Battiston modernized bottleneck installation
- Moritz E. Beber set up continuous integration with Travis CI
- Jaime Frio improved the numerical stability of move_std
- Christoph Gohlke revived Windows compatibility
- Jennifer Olsen added NaN support to move_median

**Contributors**

.. contributors:: v1.0.0..v1.1.0

1.0.0

----------------

*Release date: 2015-02-06*

This release is a complete rewrite of Bottleneck.

**Faster**

- "python setup.py build" is 18.7 times faster
- Function-call overhead cut in half---a big speed up for small input arrays
- Arbitrary ndim input arrays accelerated; previously only 1d, 2d, and 3d
- bn.nanrankdata is twice as fast for float input arrays
- bn.move_max, bn.move_min are faster for int input arrays
- No speed penalty for reducing along all axes when input is Fortran ordered

**Smaller**

- Compiled binaries 14.1 times smaller
- Source tarball 4.7 times smaller
- 9.8 times less C code
- 4.3 times less Cython code
- 3.7 times less Python code

**Beware**

- Requires numpy 1.9.1
- Single API, e.g.: bn.nansum instead of bn.nansum and nansum_2d_float64_axis0
- On 64-bit systems bn.nansum(int32) returns int32 instead of int64
- bn.nansum now returns 0 for all NaN slices (as does numpy 1.9.1)
- Reducing over all axes returns, e.g., 6.0; previously np.float64(6.0)
- bn.ss() now has default axis=None instead of axis=0
- bn.nn() is no longer in bottleneck

**min_count**

- Previous releases had moving window function pairs: move_sum, move_nansum
- This release only has half of the pairs: move_sum
- Instead a new input parameter, min_count, has been added
- min_count=None same as old move_sum; min_count=1 same as old move_nansum
- If non-NaN values in window < min_count, then NaN assigned to the window
- Exception: move_median does not take min_count as input

**Bug Fixes**

- Can now install bottleneck with pip even if numpy is not already installed
- bn.move_max, bn.move_min now return float32 for float32 input

**Contributors**

.. contributors:: v0.8.0..v1.0.0

0.8.0

----------------

*Release date: 2014-01-21*

This version of Bottleneck requires NumPy 1.8.

0.7.0

----------------

*Release date: 2013-09-10*

**Enhancements**

- bn.rankdata() is twice as fast (with input a = np.random.rand(1000000))
- C files now included in github repo; cython not needed to try latest
- C files are now generated with Cython 0.19.1 instead of 0.16
- Test bottleneck across multiple python/numpy versions using tox
- Source tarball size cut in half

**Bug fixes**

- move_std, move_nanstd return inappropriate NaNs (sqrt of negative ) (:issue:`50`)
- `make test` fails on some computers (:issue:`52`)
- scipy optional yet some unit tests depend on scipy (:issue:`57`)
- now works on Mac OS X 10.8 using clang compiler (:issue:`49`, :issue:`55`)
- nanstd([1.0], ddof=1) and nanvar([1.0], ddof=1) crash (:issue:`60`)

**Contributors**

.. contributors:: v0.6.0..v0.7.0

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.