NumPy 1.8.1 Release Notes#
This is a bugfix only release in the 1.8.x series.
Issues fixed#
gh-4276: Fix mean, var, std methods for object arrays
gh-4262: remove insecure mktemp usage
gh-2385: absolute(complex(inf)) raises invalid warning in python3
gh-4024: Sequence assignment doesn’t raise exception on shape mismatch
gh-4027: Fix chunked reading of strings longer than BUFFERSIZE
gh-4109: Fix object scalar return type of 0-d array indices
gh-4018: fix missing check for memory allocation failure in ufuncs
gh-4156: high order linalg.norm discards imaginary elements of complex arrays
gh-4144: linalg: norm fails on longdouble, signed int
gh-4094: fix NaT handling in _strided_to_strided_string_to_datetime
gh-4051: fix uninitialized use in _strided_to_strided_string_to_datetime
gh-4093: Loading compressed .npz file fails under Python 2.6.6
gh-4138: segfault with non-native endian memoryview in python 3.4
gh-4123: Fix missing NULL check in lexsort
gh-4170: fix native-only long long check in memoryviews
gh-4187: Fix large file support on 32 bit
gh-4152: fromfile: ensure file handle positions are in sync in python3
gh-4176: clang compatibility: Typos in conversion_utils
gh-4223: Fetching a non-integer item caused array return
gh-4197: fix minor memory leak in memoryview failure case
gh-4206: fix build with single-threaded python
gh-4220: add versionadded:: 1.8.0 to ufunc.at docstring
gh-4267: improve handling of memory allocation failure
gh-4267: fix use of capi without gil in ufunc.at
gh-4261: Detect vendor versions of GNU Compilers
gh-4253: IRR was returning nan instead of valid negative answer
gh-4254: fix unnecessary byte order flag change for byte arrays
gh-3263: numpy.random.shuffle clobbers mask of a MaskedArray
gh-4270: np.random.shuffle not work with flexible dtypes
gh-3173: Segmentation fault when ‘size’ argument to random.multinomial
gh-2799: allow using unique with lists of complex
gh-3504: fix linspace truncation for integer array scalar
gh-4191: get_info(‘openblas’) does not read libraries key
gh-3348: Access violation in _descriptor_from_pep3118_format
gh-3175: segmentation fault with numpy.array() from bytearray
gh-4266: histogramdd - wrong result for entries very close to last boundary
gh-4408: Fix stride_stricks.as_strided function for object arrays
gh-4225: fix log1p and exmp1 return for np.inf on windows compiler builds
gh-4359: Fix infinite recursion in str.format of flex arrays
gh-4145: Incorrect shape of broadcast result with the exponent operator
gh-4483: Fix commutativity of {dot,multiply,inner}(scalar, matrix_of_objs)
gh-4466: Delay npyiter size check when size may change
gh-4485: Buffered stride was erroneously marked fixed
gh-4354: byte_bounds fails with datetime dtypes
gh-4486: segfault/error converting from/to high-precision datetime64 objects
gh-4428: einsum(None, None, None, None) causes segfault
gh-4134: uninitialized use for for size 1 object reductions
Changes#
NDIter#
When NpyIter_RemoveAxis
is now called, the iterator range will be reset.
When a multi index is being tracked and an iterator is not buffered, it is
possible to use NpyIter_RemoveAxis
. In this case an iterator can shrink
in size. Because the total size of an iterator is limited, the iterator
may be too large before these calls. In this case its size will be set to -1
and an error issued not at construction time but when removing the multi
index, setting the iterator range, or getting the next function.
This has no effect on currently working code, but highlights the necessity of checking for an error return if these conditions can occur. In most cases the arrays being iterated are as large as the iterator so that such a problem cannot occur.
Optional reduced verbosity for np.distutils#
Set numpy.distutils.system_info.system_info.verbosity = 0
and then
calls to numpy.distutils.system_info.get_info('blas_opt')
will not
print anything on the output. This is mostly for other packages using
numpy.distutils.
Deprecations#
C-API#
The utility function npy_PyFile_Dup and npy_PyFile_DupClose are broken by the internal buffering python 3 applies to its file objects. To fix this two new functions npy_PyFile_Dup2 and npy_PyFile_DupClose2 are declared in npy_3kcompat.h and the old functions are deprecated. Due to the fragile nature of these functions it is recommended to instead use the python API when possible.