summaryrefslogtreecommitdiff
path: root/numpy/core/numeric.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2023-05-13 11:02:49 -0600
committerGitHub <noreply@github.com>2023-05-13 11:02:49 -0600
commit5187067d7ad176ee3614beab2b99a524dd719aa8 (patch)
tree907997d0c294f550193322aaa73237c1a7bcfaa6 /numpy/core/numeric.py
parentb786189222ac5bf2f4efbb04399261f7f760bc18 (diff)
parent81caed6e3c34c4bf4b22b4f6167e816ba2a3f73c (diff)
downloadnumpy-5187067d7ad176ee3614beab2b99a524dd719aa8.tar.gz
Merge branch 'main' into deprecate-find-common-type
Diffstat (limited to 'numpy/core/numeric.py')
-rw-r--r--numpy/core/numeric.py95
1 files changed, 33 insertions, 62 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py
index 5b92972d1..91ac3f860 100644
--- a/numpy/core/numeric.py
+++ b/numpy/core/numeric.py
@@ -4,6 +4,7 @@ import operator
import sys
import warnings
import numbers
+import builtins
import numpy as np
from . import multiarray
@@ -17,7 +18,8 @@ from .multiarray import (
fromstring, inner, lexsort, matmul, may_share_memory,
min_scalar_type, ndarray, nditer, nested_iters, promote_types,
putmask, result_type, set_numeric_ops, shares_memory, vdot, where,
- zeros, normalize_axis_index, _get_promotion_state, _set_promotion_state)
+ zeros, normalize_axis_index, _get_promotion_state, _set_promotion_state,
+ _using_numpy2_behavior)
from . import overrides
from . import umath
@@ -26,7 +28,7 @@ from .overrides import set_array_function_like_doc, set_module
from .umath import (multiply, invert, sin, PINF, NAN)
from . import numerictypes
from .numerictypes import longlong, intc, int_, float_, complex_, bool_
-from ._exceptions import TooHardError, AxisError
+from ..exceptions import ComplexWarning, TooHardError, AxisError
from ._ufunc_config import errstate, _no_nep50_warning
bitwise_not = invert
@@ -52,22 +54,10 @@ __all__ = [
'identity', 'allclose', 'compare_chararrays', 'putmask',
'flatnonzero', 'Inf', 'inf', 'infty', 'Infinity', 'nan', 'NaN',
'False_', 'True_', 'bitwise_not', 'CLIP', 'RAISE', 'WRAP', 'MAXDIMS',
- 'BUFSIZE', 'ALLOW_THREADS', 'ComplexWarning', 'full', 'full_like',
+ 'BUFSIZE', 'ALLOW_THREADS', 'full', 'full_like',
'matmul', 'shares_memory', 'may_share_memory', 'MAY_SHARE_BOUNDS',
- 'MAY_SHARE_EXACT', 'TooHardError', 'AxisError',
- '_get_promotion_state', '_set_promotion_state']
-
-
-@set_module('numpy')
-class ComplexWarning(RuntimeWarning):
- """
- The warning raised when casting a complex dtype to a real dtype.
-
- As implemented, casting a complex number to a real discards its imaginary
- part, but this behavior may not be what the user actually wants.
-
- """
- pass
+ 'MAY_SHARE_EXACT', '_get_promotion_state', '_set_promotion_state',
+ '_using_numpy2_behavior']
def _zeros_like_dispatcher(a, dtype=None, order=None, subok=None, shape=None):
@@ -143,10 +133,6 @@ def zeros_like(a, dtype=None, order='K', subok=True, shape=None):
return res
-def _ones_dispatcher(shape, dtype=None, order=None, *, like=None):
- return(like,)
-
-
@set_array_function_like_doc
@set_module('numpy')
def ones(shape, dtype=None, order='C', *, like=None):
@@ -200,16 +186,14 @@ def ones(shape, dtype=None, order='C', *, like=None):
"""
if like is not None:
- return _ones_with_like(shape, dtype=dtype, order=order, like=like)
+ return _ones_with_like(like, shape, dtype=dtype, order=order)
a = empty(shape, dtype, order)
multiarray.copyto(a, 1, casting='unsafe')
return a
-_ones_with_like = array_function_dispatch(
- _ones_dispatcher
-)(ones)
+_ones_with_like = array_function_dispatch()(ones)
def _ones_like_dispatcher(a, dtype=None, order=None, subok=None, shape=None):
@@ -336,7 +320,8 @@ def full(shape, fill_value, dtype=None, order='C', *, like=None):
"""
if like is not None:
- return _full_with_like(shape, fill_value, dtype=dtype, order=order, like=like)
+ return _full_with_like(
+ like, shape, fill_value, dtype=dtype, order=order)
if dtype is None:
fill_value = asarray(fill_value)
@@ -346,9 +331,7 @@ def full(shape, fill_value, dtype=None, order='C', *, like=None):
return a
-_full_with_like = array_function_dispatch(
- _full_dispatcher
-)(full)
+_full_with_like = array_function_dispatch()(full)
def _full_like_dispatcher(a, fill_value, dtype=None, order=None, subok=None, shape=None):
@@ -707,7 +690,7 @@ def correlate(a, v, mode='valid'):
--------
convolve : Discrete, linear convolution of two one-dimensional sequences.
multiarray.correlate : Old, no conjugate, version of correlate.
- scipy.signal.correlate : uses FFT which has superior performance on large arrays.
+ scipy.signal.correlate : uses FFT which has superior performance on large arrays.
Notes
-----
@@ -721,7 +704,7 @@ def correlate(a, v, mode='valid'):
`numpy.correlate` may perform slowly in large arrays (i.e. n = 1e5) because it does
not use the FFT to compute the convolution; in that case, `scipy.signal.correlate` might
be preferable.
-
+
Examples
--------
@@ -738,7 +721,7 @@ def correlate(a, v, mode='valid'):
array([ 0.5-0.5j, 1.0+0.j , 1.5-1.5j, 3.0-1.j , 0.0+0.j ])
Note that you get the time reversed, complex conjugated result
- (:math:`\overline{c_{-k}}`) when the two input sequences a and v change
+ (:math:`\overline{c_{-k}}`) when the two input sequences a and v change
places:
>>> np.correlate([0, 1, 0.5j], [1+1j, 2, 3-1j], 'full')
@@ -860,14 +843,13 @@ def outer(a, b, out=None):
"""
Compute the outer product of two vectors.
- Given two vectors, ``a = [a0, a1, ..., aM]`` and
- ``b = [b0, b1, ..., bN]``,
+ Given two vectors `a` and `b` of length ``M`` and ``N``, repsectively,
the outer product [1]_ is::
- [[a0*b0 a0*b1 ... a0*bN ]
- [a1*b0 .
+ [[a_0*b_0 a_0*b_1 ... a_0*b_{N-1} ]
+ [a_1*b_0 .
[ ... .
- [aM*b0 aM*bN ]]
+ [a_{M-1}*b_0 a_{M-1}*b_{N-1} ]]
Parameters
----------
@@ -899,9 +881,9 @@ def outer(a, b, out=None):
References
----------
- .. [1] : G. H. Golub and C. F. Van Loan, *Matrix Computations*, 3rd
- ed., Baltimore, MD, Johns Hopkins University Press, 1996,
- pg. 8.
+ .. [1] G. H. Golub and C. F. Van Loan, *Matrix Computations*, 3rd
+ ed., Baltimore, MD, Johns Hopkins University Press, 1996,
+ pg. 8.
Examples
--------
@@ -1300,7 +1282,7 @@ def rollaxis(a, axis, start=0):
+-------------------+----------------------+
| ``arr.ndim + 1`` | raise ``AxisError`` |
+-------------------+----------------------+
-
+
.. |vdots| unicode:: U+22EE .. Vertical Ellipsis
Returns
@@ -1791,10 +1773,6 @@ def indices(dimensions, dtype=int, sparse=False):
return res
-def _fromfunction_dispatcher(function, shape, *, dtype=None, like=None, **kwargs):
- return (like,)
-
-
@set_array_function_like_doc
@set_module('numpy')
def fromfunction(function, shape, *, dtype=float, like=None, **kwargs):
@@ -1843,11 +1821,11 @@ def fromfunction(function, shape, *, dtype=float, like=None, **kwargs):
>>> np.fromfunction(lambda i, j: i, (2, 2), dtype=float)
array([[0., 0.],
[1., 1.]])
-
- >>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float)
+
+ >>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float)
array([[0., 1.],
[0., 1.]])
-
+
>>> np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int)
array([[ True, False, False],
[False, True, False],
@@ -1860,15 +1838,14 @@ def fromfunction(function, shape, *, dtype=float, like=None, **kwargs):
"""
if like is not None:
- return _fromfunction_with_like(function, shape, dtype=dtype, like=like, **kwargs)
+ return _fromfunction_with_like(
+ like, function, shape, dtype=dtype, **kwargs)
args = indices(shape, dtype=dtype)
return function(*args, **kwargs)
-_fromfunction_with_like = array_function_dispatch(
- _fromfunction_dispatcher
-)(fromfunction)
+_fromfunction_with_like = array_function_dispatch()(fromfunction)
def _frombuffer(buf, dtype, shape, order):
@@ -2046,7 +2023,7 @@ def binary_repr(num, width=None):
binary = bin(num)[2:]
binwidth = len(binary)
outwidth = (binwidth if width is None
- else max(binwidth, width))
+ else builtins.max(binwidth, width))
warn_if_insufficient(width, binwidth)
return binary.zfill(outwidth)
@@ -2066,7 +2043,7 @@ def binary_repr(num, width=None):
binary = bin(twocomp)[2:]
binwidth = len(binary)
- outwidth = max(binwidth, width)
+ outwidth = builtins.max(binwidth, width)
warn_if_insufficient(width, binwidth)
return '1' * (outwidth - binwidth) + binary
@@ -2143,10 +2120,6 @@ def _maketup(descr, val):
return tuple(res)
-def _identity_dispatcher(n, dtype=None, *, like=None):
- return (like,)
-
-
@set_array_function_like_doc
@set_module('numpy')
def identity(n, dtype=None, *, like=None):
@@ -2181,15 +2154,13 @@ def identity(n, dtype=None, *, like=None):
"""
if like is not None:
- return _identity_with_like(n, dtype=dtype, like=like)
+ return _identity_with_like(like, n, dtype=dtype)
from numpy import eye
return eye(n, dtype=dtype, like=like)
-_identity_with_like = array_function_dispatch(
- _identity_dispatcher
-)(identity)
+_identity_with_like = array_function_dispatch()(identity)
def _allclose_dispatcher(a, b, rtol=None, atol=None, equal_nan=None):