summaryrefslogtreecommitdiff
path: root/numpy/array_api/_indexing_functions.py
blob: ba56bcd6f004934c9f57711abf033394fb0838da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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))