diff options
author | Alex Rogozhnikov <arogozhnikov@users.noreply.github.com> | 2023-02-26 07:56:47 +0000 |
---|---|---|
committer | Alex Rogozhnikov <arogozhnikov@users.noreply.github.com> | 2023-02-26 07:56:47 +0000 |
commit | f07d55b27671a4575e3b9b2fc7ca9ec897d4db9e (patch) | |
tree | 70d966f39603426d0fa9bebbeccefad5b1495834 /numpy/array_api/_indexing_functions.py | |
parent | e141d9074e95bbdaa33ce727e9c9baa33d00875a (diff) | |
download | numpy-f07d55b27671a4575e3b9b2fc7ca9ec897d4db9e.tar.gz |
add support for xp.take
Diffstat (limited to 'numpy/array_api/_indexing_functions.py')
-rw-r--r-- | numpy/array_api/_indexing_functions.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/numpy/array_api/_indexing_functions.py b/numpy/array_api/_indexing_functions.py new file mode 100644 index 000000000..ba56bcd6f --- /dev/null +++ b/numpy/array_api/_indexing_functions.py @@ -0,0 +1,18 @@ +from __future__ import annotations + +from ._array_object import Array +from ._dtypes import _integer_dtypes + +import numpy as np + +def take(x: Array, indices: Array, /, *, axis: int) -> Array: + """ + Array API compatible wrapper for :py:func:`np.take <numpy.take>`. + + See its docstring for more information. + """ + if indices.dtype not in _integer_dtypes: + raise TypeError("Only integer dtypes are allowed in indexing") + if indices.ndim != 1: + raise ValueError("Only 1-dim indices array is supported") + return Array._new(np.take(x._array, indices._array, axis=axis)) |