Skip to content

DOC: write doc about implicit behavior in advanced and basic combined indexing #26321

@hidetatz

Description

@hidetatz

Issue with current documentation:

It looks like there is an implicit behavior which is not documented in advanced and basic combined index.
Below is the reproducing code:

>>> x = np.arange(0, 12).reshape(2, 3, 2)
>>> y = x[0:2, [0, 1], 0:2]
>>> y.base
array([[[0, 1],
        [6, 7]],
                                                                                                                                                                                                                                                                                         
       [[2, 3],
        [8, 9]]])
>>> y.shape, y.strides
((2, 2, 2), (16, 32, 8))

y is created using advanced indexing.
Particularly, because the index [0:2, [0, 1], 0:2] contains both slice and list, this is called Combining advanced and basic indexing.

The point is because this is a kind of advanced indexing, this should return a copy of data. This is documented.

Advanced indexing always returns a copy of the data (contrast with basic slicing that returns a view).

However, in above example code, y is not a copy of data but view because it has non-None y.base .
I want when and how this behavior happens documented.

I want to contribute to this issue if possible, but I cannot because I also don't understand when and how this behavior happens.

Idea or request for content:

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions