8000 feat: add support for integer array indexing by kgryte · Pull Request #900 · data-apis/array-api · GitHub
[go: up one dir, main page]

Skip to content

feat: add support for integer array indexing #900

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Feb 22, 2025
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
60acb1e
docs: fix typo
kgryte Feb 17, 2025
d3c5a2e
docs: remove copy regarding equivalent sequences
kgryte Feb 20, 2025
19f1f5d
docs: update notation
kgryte Feb 20, 2025
a4b6033
docs: remove explicit exception prescription
kgryte Feb 20, 2025
304c446
docs: revise indexing guidance
kgryte Feb 20, 2025
a1e24cb
docs: split into multiple sentences
kgryte Feb 20, 2025
f51cab1
docs: update copy
kgryte Feb 20, 2025
88757ea
docs: fix copy
kgryte Feb 20, 2025
d39814e
docs: update copy
kgryte Feb 20, 2025
6b93ab9
docs: add note
kgryte Feb 20, 2025
b3e4288
docs: update copy
kgryte Feb 20, 2025
a2a786e
docs: add note
kgryte Feb 20, 2025
911ee68
docs: update copy
kgryte Feb 20, 2025
acb49cd
docs: update guidance
kgryte Feb 21, 2025
315ee48
fix: update copy
kgryte Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs: add note
  • Loading branch information
kgryte committed Feb 20, 2025
commit a2a786e31d8309214b1fe9a210cc8e039acb5370
3 changes: 3 additions & 0 deletions spec/draft/API_specification/indexing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,9 @@ Multi-dimensional arrays must extend the concept of single-axis indexing to mult
Integer Array Indexing
----------------------

.. note::
Integer array indexing, as described in this specification, is a reduced subset of "vectorized indexing" semantics, as implemented in libraries such as NumPy. In vectorized indexing, integers and integer arrays are broadcasted to integer arrays having a common shape before being "zipped" together to form a list of index coordinates. This form of indexing diverges from the multi-axis indexing semantics described above (see :ref:`indexing-multi-axis`) where each element of an indexing tuple comprised of integers and slices independently indexes a particular axis. This latter form of indexing is commonly referred to as "orthogonal indexing" and is the default form of indexing outside of Python in languages such as Julia and MATLAB.

An array must support indexing by an indexing tuple which contains only integers and integer arrays according to the following rules. Let ``A`` be an ``N``-dimensional array with shape ``S1``. Let ``T`` be a tuple ``(t1, t2, ..., tN)`` having length ``N``. Let ``tk`` be an individual element of ``T``.

- Providing a zero-dimensional integer array ``tk`` containing an integer index must be equivalent to providing an integer index having the value ``tk[()]``. Conversely, each integer index ``tk`` must be equivalent to a zero-dimensional integer array containing the same value and be treated as such in all contexts, including shape inference and broadcasting. Accordingly, if ``T`` consists of only integers and zero-dimensional integer arrays, the result must be equivalent to indexing multiple axes using integer indices. For example, if ``A`` is a two-dimensional array, ``T`` is the tuple ``(i, J)``, ``i`` is a valid integer index, and ``J`` is a zero-dimensional array containing a valid integer index ``j``, the result of ``A[T]`` must be equivalent to ``A[(i,j)]`` (see :ref:`indexing-multi-axis`).
Expand Down
0