diff --git a/src/awkward/_nplikes/placeholder.py b/src/awkward/_nplikes/placeholder.py index 20a2af6ee7..cff0698e82 100644 --- a/src/awkward/_nplikes/placeholder.py +++ b/src/awkward/_nplikes/placeholder.py @@ -8,6 +8,7 @@ from awkward._nplikes.array_like import ArrayLike from awkward._nplikes.numpy_like import NumpyLike, NumpyMetadata from awkward._nplikes.shape import ShapeItem, unknown_length +from awkward._regularize import is_array_like from awkward._typing import TYPE_CHECKING, Any, DType, Self np = NumpyMetadata.instance() @@ -93,6 +94,10 @@ def __getitem__(self, index): new_length = (stop - start) // step return type(self)(self._nplike, (new_length,), self._dtype) + elif isinstance(index, int): + return type(self)(self._nplike, (1,), self._dtype) + elif is_array_like(index) and np.issubdtype(index.dtype, np.integer): + return type(self)(self._nplike, index.shape, self._dtype) else: raise TypeError( f"{type(self).__name__} supports only trivial slices, not {type(index).__name__}"